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" ) func registerAgentRechargeRoutes(router fiber.Router, handler *admin.AgentRechargeHandler, doc *openapi.Generator, basePath string) { group := router.Group("/agent-recharges", func(c *fiber.Ctx) error { userType := middleware.GetUserTypeFromContext(c.UserContext()) if userType == constants.UserTypeEnterprise { return errors.New(errors.CodeForbidden, "企业账号无权访问代理充值功能") } return c.Next() }) groupPath := basePath + "/agent-recharges" Register(group, doc, groupPath, "POST", "", handler.Create, RouteSpec{ Summary: "创建代理充值订单", Tags: []string{"代理预充值"}, Input: new(dto.CreateAgentRechargeRequest), Output: new(dto.AgentRechargeResponse), Auth: true, }) Register(group, doc, groupPath, "GET", "", handler.List, RouteSpec{ Summary: "查询代理充值订单列表", Tags: []string{"代理预充值"}, Input: new(dto.AgentRechargeListRequest), Output: new(dto.AgentRechargeListResponse), Auth: true, }) Register(group, doc, groupPath, "GET", "/:id", handler.Get, RouteSpec{ Summary: "查询代理充值订单详情", Tags: []string{"代理预充值"}, Input: new(dto.IDReq), Output: new(dto.AgentRechargeResponse), Auth: true, }) Register(group, doc, groupPath, "POST", "/:id/offline-pay", handler.OfflinePay, RouteSpec{ Summary: "确认线下充值", Tags: []string{"代理预充值"}, Input: new(dto.AgentOfflinePayRequest), Output: new(dto.AgentRechargeResponse), Auth: true, }) }