package notification import ( "context" "time" smscontract "git.gocasts.ir/ebhomengo/niki/contract/sms" param "git.gocasts.ir/ebhomengo/niki/param/admin/admin" adminbenefactorparam "git.gocasts.ir/ebhomengo/niki/param/admin/benefactor" kbp "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box" adminkindboxreqparam "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req" ) type Config struct { Timeout time.Duration `koanf:"timeout"` } type KindBoxReqSvc interface { Get(ctx context.Context, request adminkindboxreqparam.GetKindBoxReqRequest) (adminkindboxreqparam.GetKindBoxReqResponse, error) } type BenefactorSvc interface { GetByID(ctx context.Context, req adminbenefactorparam.GetBenefactorByIDRequest) (adminbenefactorparam.GetBenefactorByIDResponse, error) } type AdminSvc interface { AdminExistByID(ctx context.Context, req param.AdminExistByIDRequest) (param.AdminExistByIDResponse, error) } type KindBoxSvc interface { Get(ctx context.Context, req kbp.KindBoxGetRequest) (kbp.KindBoxGetResponse, error) } type Service struct { cfg Config smsAdapter smscontract.SmsAdapter KindBoxReqSvc KindBoxReqSvc BenefactorSvc BenefactorSvc AdminSvc AdminSvc KindBoxSvc KindBoxSvc } func New(cfg Config, smsAdapter smscontract.SmsAdapter, kindBoxReqSvc KindBoxReqSvc, benefactorSvc BenefactorSvc, adminSvc AdminSvc, kindBoxSvc KindBoxSvc, ) Service { return Service{ cfg: cfg, smsAdapter: smsAdapter, KindBoxReqSvc: kindBoxReqSvc, BenefactorSvc: benefactorSvc, AdminSvc: adminSvc, KindBoxSvc: kindBoxSvc, } }