package handler import ( "github.com/Wei-Shaw/sub2api/internal/handler/admin" "github.com/Wei-Shaw/sub2api/internal/service" "github.com/google/wire" ) // ProvideAdminHandlers creates the AdminHandlers struct func ProvideAdminHandlers( dashboardHandler *admin.DashboardHandler, userHandler *admin.UserHandler, groupHandler *admin.GroupHandler, accountHandler *admin.AccountHandler, oauthHandler *admin.OAuthHandler, openaiOAuthHandler *admin.OpenAIOAuthHandler, geminiOAuthHandler *admin.GeminiOAuthHandler, antigravityOAuthHandler *admin.AntigravityOAuthHandler, proxyHandler *admin.ProxyHandler, redeemHandler *admin.RedeemHandler, promoHandler *admin.PromoHandler, settingHandler *admin.SettingHandler, opsHandler *admin.OpsHandler, systemHandler *admin.SystemHandler, subscriptionHandler *admin.SubscriptionHandler, usageHandler *admin.UsageHandler, userAttributeHandler *admin.UserAttributeHandler, ) *AdminHandlers { return &AdminHandlers{ Dashboard: dashboardHandler, User: userHandler, Group: groupHandler, Account: accountHandler, OAuth: oauthHandler, OpenAIOAuth: openaiOAuthHandler, GeminiOAuth: geminiOAuthHandler, AntigravityOAuth: antigravityOAuthHandler, Proxy: proxyHandler, Redeem: redeemHandler, Promo: promoHandler, Setting: settingHandler, Ops: opsHandler, System: systemHandler, Subscription: subscriptionHandler, Usage: usageHandler, UserAttribute: userAttributeHandler, } } // ProvideSystemHandler creates admin.SystemHandler with UpdateService func ProvideSystemHandler(updateService *service.UpdateService) *admin.SystemHandler { return admin.NewSystemHandler(updateService) } // ProvideSettingHandler creates SettingHandler with version from BuildInfo func ProvideSettingHandler(settingService *service.SettingService, buildInfo BuildInfo) *SettingHandler { return NewSettingHandler(settingService, buildInfo.Version) } // ProvideHandlers creates the Handlers struct func ProvideHandlers( authHandler *AuthHandler, userHandler *UserHandler, apiKeyHandler *APIKeyHandler, usageHandler *UsageHandler, redeemHandler *RedeemHandler, subscriptionHandler *SubscriptionHandler, adminHandlers *AdminHandlers, gatewayHandler *GatewayHandler, openaiGatewayHandler *OpenAIGatewayHandler, settingHandler *SettingHandler, totpHandler *TotpHandler, ) *Handlers { return &Handlers{ Auth: authHandler, User: userHandler, APIKey: apiKeyHandler, Usage: usageHandler, Redeem: redeemHandler, Subscription: subscriptionHandler, Admin: adminHandlers, Gateway: gatewayHandler, OpenAIGateway: openaiGatewayHandler, Setting: settingHandler, Totp: totpHandler, } } // ProviderSet is the Wire provider set for all handlers var ProviderSet = wire.NewSet( // Top-level handlers NewAuthHandler, NewUserHandler, NewAPIKeyHandler, NewUsageHandler, NewRedeemHandler, NewSubscriptionHandler, NewGatewayHandler, NewOpenAIGatewayHandler, NewTotpHandler, ProvideSettingHandler, // Admin handlers admin.NewDashboardHandler, admin.NewUserHandler, admin.NewGroupHandler, admin.NewAccountHandler, admin.NewOAuthHandler, admin.NewOpenAIOAuthHandler, admin.NewGeminiOAuthHandler, admin.NewAntigravityOAuthHandler, admin.NewProxyHandler, admin.NewRedeemHandler, admin.NewPromoHandler, admin.NewSettingHandler, admin.NewOpsHandler, ProvideSystemHandler, admin.NewSubscriptionHandler, admin.NewUsageHandler, admin.NewUserAttributeHandler, // AdminHandlers and Handlers constructors ProvideAdminHandlers, ProvideHandlers, )