package adminkindboxreqservice import ( "context" "git.gocasts.ir/ebhomengo/niki/entity" adminkindboxparam "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 } type KindBoxClient interface { AddKindBoxAfterAcceptingRequest(ctx context.Context, param adminkindboxparam.KindBoxAddAfterAcceptingReqRequest) (adminkindboxparam.KindBoxAddAfterAcceptingReqResponse, error) } // TODO: check validation. // type BenefactorService interface { // IsBenefactorExist(ctx context.Context, benefactorID uint) (bool, error) // } type Service struct { repo Repository // benefactorService BenefactorService kindBoxClient KindBoxClient } func New(repository Repository, kindBoxClient KindBoxClient) Service { return Service{ repo: repository, kindBoxClient: kindBoxClient, } }