package user import ( "github.com/eminetto/clean-architecture-go-v2/entity" ) //Reader interface type Reader interface { Get(id entity.ID) (*entity.User, error) Search(query string) ([]*entity.User, error) List() ([]*entity.User, error) } //Writer user writer type Writer interface { Create(e *entity.User) (entity.ID, error) Update(e *entity.User) error Delete(id entity.ID) error } //Repository interface type Repository interface { Reader Writer } //UseCase interface type UseCase interface { GetUser(id entity.ID) (*entity.User, error) SearchUsers(query string) ([]*entity.User, error) ListUsers() ([]*entity.User, error) CreateUser(email, password, firstName, lastName string) (entity.ID, error) UpdateUser(e *entity.User) error DeleteUser(id entity.ID) error }