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"
	"github.com/break/junhong_cmp_fiber/internal/handler/h5"
)

// 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),
		Shop:                        admin.NewShopHandler(nil),
		ShopCommission:              admin.NewShopCommissionHandler(nil),
		CommissionWithdrawal:        admin.NewCommissionWithdrawalHandler(nil),
		CommissionWithdrawalSetting: admin.NewCommissionWithdrawalSettingHandler(nil),
		Enterprise:                  admin.NewEnterpriseHandler(nil),
		EnterpriseCard:              admin.NewEnterpriseCardHandler(nil),
		EnterpriseDevice:            admin.NewEnterpriseDeviceHandler(nil),
		EnterpriseDeviceH5:          h5.NewEnterpriseDeviceHandler(nil),
		Authorization:               admin.NewAuthorizationHandler(nil),
		MyCommission:                admin.NewMyCommissionHandler(nil),
		IotCard:                     admin.NewIotCardHandler(nil, nil),
		IotCardImport:               admin.NewIotCardImportHandler(nil),
		Device:                      admin.NewDeviceHandler(nil, 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),
		ShopSeriesAllocation:        admin.NewShopSeriesAllocationHandler(nil),
		ShopPackageAllocation:       admin.NewShopPackageAllocationHandler(nil),
		ShopPackageBatchAllocation:  admin.NewShopPackageBatchAllocationHandler(nil),
		ShopPackageBatchPricing:     admin.NewShopPackageBatchPricingHandler(nil),
		AdminOrder:                  admin.NewOrderHandler(nil),
		H5Order:                     h5.NewOrderHandler(nil),
		H5Recharge:                  h5.NewRechargeHandler(nil),
		PaymentCallback:             callback.NewPaymentHandler(nil, nil, nil),
	}
}
