package adminkindboxreqservice import ( "context" "git.gocasts.ir/ebhomengo/niki/entity" params "git.gocasts.ir/ebhomengo/niki/param" param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box" ) type Repository interface { AcceptKindBoxReq(ctx context.Context, kindBoxReqID uint, countAccepted uint) error GetByID(ctx context.Context, id uint) (entity.KindBoxReq, error) RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error RollbackKindBoxRequestStatus(ctx context.Context, id uint) error AssignSenderAgentToKindBoxReq(ctx context.Context, kindBoxReqID uint, senderAgentID uint) error DeliverKindBoxReq(ctx context.Context, kindBoxReqID uint) error GetAllKindBoxReq(ctx context.Context, filter params.FilterRequest, pagination params.PaginationRequest, sort params.SortRequest) ([]entity.KindBoxReq, uint, error) GetAwaitingDeliveryByAgent(ctx context.Context, kindBoxReqID uint, agentID uint) (entity.KindBoxReq, error) AddKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error) } type KindBoxSvc interface { AddBatchKindBox(ctx context.Context, req param.AddKindBoxRequest) (param.AddKindBoxResponse, error) } type Service struct { repo Repository kindBoxSvc KindBoxSvc } func New(repository Repository, kindBoxSvc KindBoxSvc) Service { return Service{ repo: repository, kindBoxSvc: kindBoxSvc, } }