package routes import ( "github.com/gofiber/fiber/v2" "github.com/break/junhong_cmp_fiber/internal/bootstrap" apphandler "github.com/break/junhong_cmp_fiber/internal/handler/app" "github.com/break/junhong_cmp_fiber/internal/middleware" "github.com/break/junhong_cmp_fiber/pkg/openapi" ) // RegisterPersonalCustomerRoutes 注册个人客户路由 // 路由挂载在 /api/c/v1 下 func RegisterPersonalCustomerRoutes(router fiber.Router, doc *openapi.Generator, basePath string, handlers *bootstrap.Handlers, personalAuthMiddleware *middleware.PersonalAuthMiddleware) { // 公开路由(不需要认证) publicGroup := router.Group("") // 发送验证码 Register(publicGroup, doc, basePath, "POST", "/login/send-code", handlers.PersonalCustomer.SendCode, RouteSpec{ Summary: "发送验证码", Description: "向指定手机号发送登录验证码", Tags: []string{"个人客户 - 认证"}, Auth: false, Input: &apphandler.SendCodeRequest{}, Output: nil, }) // 登录 Register(publicGroup, doc, basePath, "POST", "/login", handlers.PersonalCustomer.Login, RouteSpec{ Summary: "手机号登录", Description: "使用手机号和验证码登录", Tags: []string{"个人客户 - 认证"}, Auth: false, Input: &apphandler.LoginRequest{}, Output: &apphandler.LoginResponse{}, }) // 需要认证的路由 authGroup := router.Group("") authGroup.Use(personalAuthMiddleware.Authenticate()) // 绑定微信 Register(authGroup, doc, basePath, "POST", "/bind-wechat", handlers.PersonalCustomer.BindWechat, RouteSpec{ Summary: "绑定微信", Description: "绑定微信账号到当前个人客户", Tags: []string{"个人客户 - 账户"}, Auth: true, Input: &apphandler.BindWechatRequest{}, Output: nil, }) // 获取个人资料 Register(authGroup, doc, basePath, "GET", "/profile", handlers.PersonalCustomer.GetProfile, RouteSpec{ Summary: "获取个人资料", Description: "获取当前登录客户的个人资料", Tags: []string{"个人客户 - 账户"}, Auth: true, Input: nil, Output: &apphandler.PersonalCustomerDTO{}, }) // 更新个人资料 Register(authGroup, doc, basePath, "PUT", "/profile", handlers.PersonalCustomer.UpdateProfile, RouteSpec{ Summary: "更新个人资料", Description: "更新当前登录客户的昵称和头像", Tags: []string{"个人客户 - 账户"}, Auth: true, Input: &apphandler.UpdateProfileRequest{}, Output: nil, }) }