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/openapi" ) // registerPollingPriorityRoutes 注册卡轮询优先队列的人工入队与只读查询路由。 // 仅挂在既有后台认证中间件组下,不新增认证边界。 func registerPollingPriorityRoutes(router fiber.Router, handler *admin.PriorityPollingHandler, doc *openapi.Generator, basePath string) { group := router.Group("/polling-priority-items") groupPath := basePath + "/polling-priority-items" Register(group, doc, groupPath, "POST", "", handler.Enqueue, RouteSpec{ Summary: "人工优先入队", Description: "为该卡的全部纳入轮询任务类型(实名/流量/套餐/卡状态)建立或合并优先轮询项。" + "同一卡同一任务类型至多一条活动项,重复入队合并触发次数与来源集合;原因必填。" + "不受既有人工触发的每日次数上限与 24 小时去重约束;不修改调度优先级,也不绕过既有并发上限。", Tags: []string{"轮询管理-优先队列"}, Input: new(dto.EnqueuePriorityPollingRequest), Output: new(dto.EnqueuePriorityPollingResponse), Auth: true, }) // 字面量路径必须先于 /:id 注册,保证路径按字面量优先匹配。 Register(group, doc, groupPath, "GET", "", handler.ListPriorityItems, RouteSpec{ Summary: "查询优先轮询项列表", Description: "分页查询卡轮询优先项,按创建时间倒序,支持卡、任务类型、状态与触发类型筛选。" + "数据范围按卡所属店铺快照下推:代理只能看到自身及下级店铺资产,平台卡不可见。", Tags: []string{"轮询管理-优先队列"}, Input: new(dto.PriorityPollingItemListRequest), Output: new(dto.PriorityPollingItemListResponse), Auth: true, }) Register(group, doc, groupPath, "GET", "/:id", handler.GetPriorityItem, RouteSpec{ Summary: "查询优先轮询项详情", Description: "查询单条卡轮询优先项。越权与不存在返回同一响应,不产生可枚举差异。" + "不提供优先级分级、有效期与人工重触发入口。", Tags: []string{"轮询管理-优先队列"}, Input: new(dto.IDReq), Output: new(dto.PriorityPollingItemResponse), Auth: true, }) }