online-order/domain/product.go

34 lines
996 B
Go

package domain
import (
"github.com/gin-gonic/gin"
"online-order/entity"
)
type ProductRepository interface {
List() ([]*entity.ProductDisplay, error)
ListProductPerCategory(slug string) ([]*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)
ListProductPerCategory(slug string) ([]*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 ProductController interface {
listProduct(ctx *gin.Context)
getProduct(ctx *gin.Context)
updateProduct(ctx *gin.Context)
deleteProduct(ctx *gin.Context)
}