package routes import ( "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" "github.com/gofiber/fiber/v2" ) func registerAdminExchangeRoutes(router fiber.Router, handler *admin.ExchangeHandler, doc *openapi.Generator, basePath string) { Register(router, doc, basePath, "POST", "/exchanges", handler.Create, RouteSpec{ Summary: "创建换货单", Tags: []string{"换货管理"}, Input: new(dto.CreateExchangeRequest), Output: new(dto.ExchangeOrderResponse), Auth: true, }) Register(router, doc, basePath, "GET", "/exchanges", handler.List, RouteSpec{ Summary: "获取换货单列表", Tags: []string{"换货管理"}, Input: new(dto.ExchangeListRequest), Output: new(dto.ExchangeListResponse), Auth: true, }) Register(router, doc, basePath, "GET", "/exchanges/:id", handler.Get, RouteSpec{ Summary: "获取换货单详情", Tags: []string{"换货管理"}, Input: new(dto.ExchangeIDRequest), Output: new(dto.ExchangeOrderResponse), Auth: true, }) Register(router, doc, basePath, "POST", "/exchanges/:id/ship", handler.Ship, RouteSpec{ Summary: "换货发货", Tags: []string{"换货管理"}, Input: new(dto.ExchangeShipParams), Output: new(dto.ExchangeOrderResponse), Auth: true, }) Register(router, doc, basePath, "POST", "/exchanges/:id/complete", handler.Complete, RouteSpec{ Summary: "确认换货完成", Description: "确认换货完成;仅超级管理员或平台用户可对迁移状态为 failed 的物流换货单重试," + "其他账号对 failed 单返回 403/1005;非 failed 单沿用既有完成权限。", Tags: []string{"换货管理"}, Input: new(dto.ExchangeIDRequest), Output: nil, Auth: true, }) Register(router, doc, basePath, "POST", "/exchanges/:id/cancel", handler.Cancel, RouteSpec{ Summary: "取消换货", Tags: []string{"换货管理"}, Input: new(dto.ExchangeCancelParams), Output: nil, Auth: true, }) Register(router, doc, basePath, "POST", "/exchanges/:id/renew", handler.Renew, RouteSpec{ Summary: "旧资产转新", Tags: []string{"换货管理"}, Input: new(dto.ExchangeIDRequest), Output: nil, Auth: true, }) }