package routes import ( "github.com/gofiber/fiber/v2" "github.com/break/junhong_cmp_fiber/internal/handler/admin" "github.com/break/junhong_cmp_fiber/internal/model/dto" "github.com/break/junhong_cmp_fiber/pkg/constants" "github.com/break/junhong_cmp_fiber/pkg/errors" "github.com/break/junhong_cmp_fiber/pkg/middleware" "github.com/break/junhong_cmp_fiber/pkg/openapi" ) // registerAssetAutoRenewalRoutes 注册资产钱包自动续费配置的读写路由。 // 沿用超管/平台路由组级 gate 先例:代理、企业与个人客户账号一律 403,无任何读取或修改入口。 func registerAssetAutoRenewalRoutes(router fiber.Router, handler *admin.AssetAutoRenewalConfigHandler, doc *openapi.Generator, basePath string) { group := router.Group("", func(c *fiber.Ctx) error { userType := middleware.GetUserTypeFromContext(c.UserContext()) if userType != constants.UserTypeSuperAdmin && userType != constants.UserTypePlatform { return errors.New(errors.CodeForbidden, constants.PlatformManagementForbiddenMessage) } return c.Next() }) path := basePath + "/asset-auto-renewal-config" Register(group, doc, path, "GET", "", handler.GetConfig, RouteSpec{ Summary: "查询资产钱包自动续费配置", Description: "返回唯一一份全局配置的总开关、适用范围、指定主套餐集合、到期前天数与配置版本;仅超级管理员与平台账号可访问", Tags: []string{"资产钱包"}, Output: new(dto.AssetAutoRenewalConfigResponse), Auth: true, }) Register(group, doc, path, "PUT", "", handler.UpdateConfig, RouteSpec{ Summary: "保存资产钱包自动续费配置", Description: "指定范围时集合必须非空且只能选择当前可售主套餐;保存记录操作者与前后值快照并递增配置版本,只影响后续扫描", Tags: []string{"资产钱包"}, Body: new(dto.UpdateAssetAutoRenewalConfigRequest), Output: new(dto.AssetAutoRenewalConfigResponse), Auth: true, }) }