package user

import "context"

type Repository interface {
	Create(ctx context.Context, user *User) error
	Update(ctx context.Context, user *User) error
	Delete(ctx context.Context, id []byte) error
	GetByID(ctx context.Context, id []byte) (*User, error)
	GetByEmail(ctx context.Context, email string) (*User, error)
	GetByUsername(ctx context.Context, username string) (*User, error)
	List(ctx context.Context, filter string, sort string, limit, offset int) ([]User, int64, error)
	GetLastNameByID(ctx context.Context, id []byte) (string, error)
}
