36 lines
765 B
Go
36 lines
765 B
Go
package book
|
|
|
|
import (
|
|
"github.com/eminetto/clean-architecture-go-v2/domain/entity"
|
|
)
|
|
|
|
//Reader interface
|
|
type Reader interface {
|
|
Get(id entity.ID) (*entity.Book, error)
|
|
Search(query string) ([]*entity.Book, error)
|
|
List() ([]*entity.Book, error)
|
|
}
|
|
|
|
//Writer book writer
|
|
type Writer interface {
|
|
Create(e *entity.Book) (entity.ID, error)
|
|
Update(e *entity.Book) error
|
|
Delete(id entity.ID) error
|
|
}
|
|
|
|
//Repository interface
|
|
type Repository interface {
|
|
Reader
|
|
Writer
|
|
}
|
|
|
|
//UseCase interface
|
|
type UseCase interface {
|
|
GetBook(id entity.ID) (*entity.Book, error)
|
|
SearchBooks(query string) ([]*entity.Book, error)
|
|
ListBooks() ([]*entity.Book, error)
|
|
CreateBook(e *entity.Book) (entity.ID, error)
|
|
UpdateBook(e *entity.Book) error
|
|
DeleteBook(id entity.ID) error
|
|
}
|