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" ) func registerExportTaskRoutes(router fiber.Router, handler *admin.ExportTaskHandler, doc *openapi.Generator, basePath string) { exportTasks := router.Group("/export-tasks") groupPath := basePath + "/export-tasks" Register(exportTasks, doc, groupPath, "POST", "", handler.Create, RouteSpec{ Summary: "创建导出任务", Description: "创建统一导出任务,支持场景 scene=device/iot_card 和格式 format=xlsx/csv。", Tags: []string{"导出任务"}, Input: new(dto.CreateExportTaskRequest), Output: new(dto.CreateExportTaskResponse), Auth: true, }) Register(exportTasks, doc, groupPath, "GET", "", handler.List, RouteSpec{ Summary: "导出任务列表", Description: "支持按 scene/status/time 过滤,分页默认 20,最大 100。", Tags: []string{"导出任务"}, Input: new(dto.ListExportTaskRequest), Output: new(dto.ListExportTaskResponse), Auth: true, }) Register(exportTasks, doc, groupPath, "GET", "/:id", handler.GetByID, RouteSpec{ Summary: "导出任务详情", Description: "已完成任务返回 download_url,链接固定有效期 24 小时。", Tags: []string{"导出任务"}, Input: new(dto.GetExportTaskRequest), Output: new(dto.ExportTaskDetailResponse), Auth: true, }) Register(exportTasks, doc, groupPath, "POST", "/:id/cancel", handler.Cancel, RouteSpec{ Summary: "取消导出任务", Description: "支持取消待处理/处理中任务;已完成/已失败/已取消任务不可取消。", Tags: []string{"导出任务"}, Input: new(dto.CancelExportTaskRequest), Output: new(dto.CancelExportTaskResponse), Auth: true, }) }