# 项目画像（Hurl 测试自动生成用）
<!-- 由 hurl-test skill 自动生成，请勿手动修改 -->
<!-- 如需刷新，删除此文件后重新运行 skill -->

## 技术栈
- 语言: Go 1.25
- 框架: Fiber v2.52.9
- ORM: GORM v1.31.1
- JSON: sonic

## 路由定义位置
- 路由注册入口: internal/routes/routes.go → RegisterRoutesWithDoc()
- 按模块拆分: internal/routes/{module}.go
- 路由注册函数: Register(router, doc, basePath, method, path, handler, spec)
- Admin 域挂载: /api/admin（需认证）
- Auth 域挂载: /api/auth（部分公开）
- C端域挂载: /api/c/v1（JWT 认证）

## Schema 定义位置
- DTO 目录: internal/model/dto/
- 命名规则: {module}_dto.go
- 字段标签: json / validate / description
- 通用 DTO: common.go（IDReq 等）

## 统一响应格式
```json
{"code": 0, "msg": "success", "data": any, "timestamp": "RFC3339"}
```
- 成功: code=0, msg="success"
- 客户端错误: code=1001~1999, HTTP 4xx
- 服务端错误: code=2001~2999, HTTP 5xx

## 分页格式（两种）

### 模式 A（部分模块：shop, account, role）
```json
{"items": [], "total": int, "page": int, "size": int}
```

### 模式 B（大部分模块：package, package_series, shop_series_grant 等）
```json
{"list": [], "total": int, "page": int, "page_size": int, "total_pages": int}
```

## 认证方式
- 后台: POST /api/auth/login → $.data.access_token → Authorization: Bearer {token}
- C端: JWT → Authorization: Bearer {token}（微信 OAuth 获取）

## 默认测试账号
- 用户名: admin
- 密码: Admin@123456
- 手机号: 13800000000

## 服务端口
- 默认: 3000

## 错误码与 HTTP 状态码映射
- 1001 (CodeInvalidParam) → 400
- 1002 (CodeMissingToken) → 401
- 1003 (CodeInvalidToken) → 401
- 1005 (CodeForbidden) → 403
- 1006 (CodeNotFound) → 404
- 冲突类 (1013/1014/1022/1024/1031/1034/1036/1101) → 409
- 1008 (CodeTooManyRequests) → 429
- 未明确映射的 1xxx → 400
- 2xxx → 500
