package domain import ( "github.com/gin-gonic/gin" "online-order/entity" ) type ProductRepository interface { List() ([]*entity.ProductDisplay, error) Create(p *entity.ProductCreateUpdate) error GetByID(id int) (*entity.ProductDisplay, error) SearchProduct(identifier string) (*entity.ProductDisplay, error) Update(p *entity.ProductCreateUpdate) error Delete(id int) error } type ProductService interface { List() ([]*entity.ProductDisplay, error) Create(u *entity.ProductCreateUpdate) error GetByID(id int) (*entity.ProductDisplay, error) SearchProduct(identifier string) (*entity.ProductDisplay, error) Update(u *entity.ProductCreateUpdate) error Delete(id int) error } type UserController interface { listProduct(ctx *gin.Context) getProduct(ctx *gin.Context) updateProduct(ctx *gin.Context) deleteProduct(ctx *gin.Context) }