29 lines
920 B
Go
29 lines
920 B
Go
package product
|
|
|
|
import (
|
|
"enaklo-pos-be/internal/common/mycontext"
|
|
"enaklo-pos-be/internal/entity"
|
|
)
|
|
|
|
type Repository interface {
|
|
GetProductsByIDs(ctx mycontext.Context, ids []int64, partnerID int64) ([]*entity.Product, error)
|
|
GetProductDetails(ctx mycontext.Context, productIDs []int64, partnerID int64) (*entity.ProductDetails, error)
|
|
GetProductsByPartnerID(ctx mycontext.Context, req entity.ProductSearch) ([]*entity.Product, int64, error)
|
|
}
|
|
|
|
type Service interface {
|
|
GetProductsByIDs(ctx mycontext.Context, ids []int64, partnerID int64) ([]*entity.Product, error)
|
|
GetProductDetails(ctx mycontext.Context, productIDs []int64, partnerID int64) (*entity.ProductDetails, error)
|
|
GetProductsByPartnerID(ctx mycontext.Context, search entity.ProductSearch) ([]*entity.Product, int64, error)
|
|
}
|
|
|
|
type productSvc struct {
|
|
repo Repository
|
|
}
|
|
|
|
func New(repo Repository) Service {
|
|
return &productSvc{
|
|
repo: repo,
|
|
}
|
|
}
|