package initialize import ( "go.uber.org/zap" "gitea.pena/PenaSide/tariffs/internal/controller/middleware" "gitea.pena/PenaSide/tariffs/internal/controller/privilege_external" "gitea.pena/PenaSide/tariffs/internal/controller/privilege_internal" "gitea.pena/PenaSide/tariffs/internal/controller/tariff_external" "gitea.pena/PenaSide/tariffs/internal/controller/tariff_internal" ) type ControllerDeps struct { Logger *zap.Logger Repos *Repository MW *middleware.MiddleWare } type Controller struct { PrivilegeInternal *privilege_internal.PrivilegeInternal PrivilegeExternal *privilege_external.PrivilegeExternal TariffInternal *tariff_internal.TariffInternal TariffExternal *tariff_external.TariffExternal } func NewControllers(deps ControllerDeps) *Controller { return &Controller{ PrivilegeInternal: privilege_internal.NewPrivilegeInternal(privilege_internal.Deps{ Repo: deps.Repos.PrivilegeRepo, Logger: deps.Logger, }), PrivilegeExternal: privilege_external.NewPrivilegeExternal(privilege_external.Deps{ Repo: deps.Repos.PrivilegeRepo, Logger: deps.Logger, }), TariffInternal: tariff_internal.NewTariffInternal(tariff_internal.Deps{ Logger: deps.Logger, Repo: deps.Repos.TariffRepo, MiddleWare: deps.MW, }), TariffExternal: tariff_external.NewTariffExternal(tariff_external.Deps{ Logger: deps.Logger, Repo: deps.Repos.TariffRepo, MiddleWare: deps.MW, }), } }