package openapi

import (
	"github.com/break/junhong_cmp_fiber/internal/bootstrap"
	"github.com/break/junhong_cmp_fiber/internal/handler/admin"
	"github.com/break/junhong_cmp_fiber/internal/handler/app"
	authHandler "github.com/break/junhong_cmp_fiber/internal/handler/auth"
	"github.com/break/junhong_cmp_fiber/internal/handler/callback"
	openapiHandler "github.com/break/junhong_cmp_fiber/internal/handler/openapi"
)

// BuildDocHandlers 构造文档生成用的 handlers（所有依赖传 nil）
func BuildDocHandlers() *bootstrap.Handlers {
	return &bootstrap.Handlers{
		Auth:                        authHandler.NewHandler(nil, nil),
		Account:                     admin.NewAccountHandler(nil),
		Role:                        admin.NewRoleHandler(nil, nil),
		Permission:                  admin.NewPermissionHandler(nil),
		PersonalCustomer:            app.NewPersonalCustomerHandler(nil, nil),
		ClientAuth:                  app.NewClientAuthHandler(nil, nil),
		ClientAsset:                 app.NewClientAssetHandler(nil, nil, nil, nil, nil, nil, nil, nil, nil),
		ClientWallet:                app.NewClientWalletHandler(nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil),
		ClientOrder:                 app.NewClientOrderHandler(nil, nil),
		ClientExchange:              app.NewClientExchangeHandler(nil),
		ClientRealname:              app.NewClientRealnameHandler(nil, nil, nil, nil, nil, nil, nil, nil),
		ClientDevice:                app.NewClientDeviceHandler(nil, nil, nil, nil, nil, nil, nil),
		ClientRechargeOrder:         app.NewClientRechargeOrderHandler(nil, nil, nil),
		ClientNotification:          app.NewClientNotificationHandler(nil, nil, nil),
		Shop:                        admin.NewShopHandler(nil, nil),
		ShopRole:                    admin.NewShopRoleHandler(nil),
		AdminAuth:                   admin.NewAuthHandler(nil, nil),
		ShopCommission:              admin.NewShopCommissionHandler(nil),
		CommissionWithdrawal:        admin.NewCommissionWithdrawalHandler(nil, nil),
		CommissionWithdrawalSetting: admin.NewCommissionWithdrawalSettingHandler(nil),
		Enterprise:                  admin.NewEnterpriseHandler(nil),
		EnterpriseCard:              admin.NewEnterpriseCardHandler(nil),
		EnterpriseDevice:            admin.NewEnterpriseDeviceHandler(nil),
		Authorization:               admin.NewAuthorizationHandler(nil),
		IotCard:                     admin.NewIotCardHandler(nil),
		IotCardImport:               admin.NewIotCardImportHandler(nil),
		ExportTask:                  admin.NewExportTaskHandler(nil),
		Notification:                admin.NewNotificationHandler(nil, nil, nil),
		Device:                      admin.NewDeviceHandler(nil),
		DeviceImport:                admin.NewDeviceImportHandler(nil),
		AssetAllocationRecord:       admin.NewAssetAllocationRecordHandler(nil),
		Storage:                     admin.NewStorageHandler(nil),
		Carrier:                     admin.NewCarrierHandler(nil),
		PackageSeries:               admin.NewPackageSeriesHandler(nil),
		Package:                     admin.NewPackageHandler(nil),
		PackageUsage:                admin.NewPackageUsageHandler(nil),
		ShopPackageBatchAllocation:  admin.NewShopPackageBatchAllocationHandler(nil),
		ShopPackageBatchPricing:     admin.NewShopPackageBatchPricingHandler(nil),
		ShopSeriesGrant:             admin.NewShopSeriesGrantHandler(nil),
		AdminOrder:                  admin.NewOrderHandler(nil, nil),
		AdminExchange:               admin.NewExchangeHandler(nil, nil, nil),
		PaymentCallback:             callback.NewPaymentHandler(nil, nil, nil, nil, nil, nil, nil, nil),
		CTCCRealnameCallback:        callback.NewCTCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
		CMCCRealnameCallback:        callback.NewCMCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
		CUCCRealnameCallback:        callback.NewCUCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
		CUCCRealnameRemovalCallback: callback.NewCUCCRealnameRemovalHandler(nil, nil, nil, nil, nil),
		PollingConfig:               admin.NewPollingConfigHandler(nil),
		PollingConcurrency:          admin.NewPollingConcurrencyHandler(nil),
		PollingMonitoring:           admin.NewPollingMonitoringHandler(nil),
		PollingAlert:                admin.NewPollingAlertHandler(nil),
		PollingCleanup:              admin.NewPollingCleanupHandler(nil),
		PollingManualTrigger:        admin.NewPollingManualTriggerHandler(nil),
		Asset:                       admin.NewAssetHandler(nil, nil, nil, nil, nil, nil, nil),
		AssetLifecycle:              admin.NewAssetLifecycleHandler(nil),
		AssetWallet:                 admin.NewAssetWalletHandler(nil),
		WechatConfig:                admin.NewWechatConfigHandler(nil),
		AgentRecharge:               admin.NewAgentRechargeHandler(nil, nil),
		Refund:                      admin.NewRefundHandler(nil),
		OrderPackageInvalidate:      admin.NewOrderPackageInvalidateHandler(nil),
		AssetPackageBatchOrder:      admin.NewAssetPackageBatchOrderHandler(nil, nil),
		ClientWechat:                app.NewClientWechatHandler(nil, nil, nil),
		SuperAdmin:                  admin.NewSuperAdminHandler(nil),
		SystemConfig:                admin.NewSystemConfigHandler(nil, nil),
		WeCom:                       admin.NewWeComHandler(nil, nil),
		AgentOpenAPI:                openapiHandler.NewHandler(nil, nil),
	}
}
