Files
clean-architecture-go-v2/domain/usecase/user/interface.go
T
2020-10-01 08:30:36 -03:00

36 lines
765 B
Go

package user
import (
"github.com/eminetto/clean-architecture-go-v2/domain/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(e *entity.User) (entity.ID, error)
UpdateUser(e *entity.User) error
DeleteUser(id entity.ID) error
}