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" "github.com/break/junhong_cmp_fiber/pkg/openapi" ) // registerAccountRoutes 注册账号相关路由 func registerAccountRoutes(api fiber.Router, h *admin.AccountHandler, doc *openapi.Generator, basePath string) { accounts := api.Group("/accounts") groupPath := basePath + "/accounts" // 账号 CRUD Register(accounts, doc, groupPath, "POST", "", h.Create, RouteSpec{ Summary: "创建账号", Tags: []string{"Account"}, Input: new(model.CreateAccountRequest), Output: new(model.AccountResponse), }) Register(accounts, doc, groupPath, "GET", "", h.List, RouteSpec{ Summary: "账号列表", Tags: []string{"Account"}, Input: new(model.AccountListRequest), Output: new(model.AccountPageResult), }) Register(accounts, doc, groupPath, "GET", "/:id", h.Get, RouteSpec{ Summary: "获取账号详情", Tags: []string{"Account"}, Input: new(model.IDReq), Output: new(model.AccountResponse), }) Register(accounts, doc, groupPath, "PUT", "/:id", h.Update, RouteSpec{ Summary: "更新账号", Tags: []string{"Account"}, Input: new(model.UpdateAccountParams), Output: new(model.AccountResponse), }) Register(accounts, doc, groupPath, "DELETE", "/:id", h.Delete, RouteSpec{ Summary: "删除账号", Tags: []string{"Account"}, Input: new(model.IDReq), Output: nil, }) // 账号-角色关联 Register(accounts, doc, groupPath, "POST", "/:id/roles", h.AssignRoles, RouteSpec{ Summary: "分配角色", Tags: []string{"Account"}, Input: new(model.AssignRolesParams), Output: nil, // TODO: Define AccountRole response DTO }) Register(accounts, doc, groupPath, "GET", "/:id/roles", h.GetRoles, RouteSpec{ Summary: "获取账号角色", Tags: []string{"Account"}, Input: new(model.IDReq), Output: new([]model.Role), }) Register(accounts, doc, groupPath, "DELETE", "/:account_id/roles/:role_id", h.RemoveRole, RouteSpec{ Summary: "移除角色", Tags: []string{"Account"}, Input: new(model.RemoveRoleParams), Output: nil, }) }