feat: 添加 PocketBase 管理端与自定义 hooks 的 API 文档

- 新增 openapi.yaml 文件,定义管理端与自定义 hooks 的接口文档,包括系统、微信认证、平台认证、字典管理、附件管理、文档管理、购物车和订单等接口。
- 新增 order.yaml 文件,定义订单相关的接口,包括查询订单列表、查询订单详情、新增订单记录、修改订单记录和删除订单记录的请求和响应结构。
- 新增 openapi-wx/openapi.yaml 文件,定义 PocketBase 原生 API 文档,包含企业信息、附件信息、产品信息、文档信息、购物车和订单的接口。
- 新增 pocketbase.scheme.js 文件,包含 PocketBase 集合的创建和更新逻辑,定义了多个集合的字段、索引和权限规则。
This commit is contained in:
2026-04-08 20:14:22 +08:00
parent e47060f54f
commit 0bdaf54eed
36 changed files with 4391 additions and 2418 deletions

View File

@@ -20,13 +20,13 @@
| :--- | :--- | :---: | :--- |
| `id` | `text` | 是 | PocketBase 记录主键 |
| `cart_id` | `text` | 是 | 购物车项业务 ID唯一标识 |
| `cart_number` | `text` | | 购物车名称 / 分组号,默认可按“用户名+年月日时分秒”生成 |
| `cart_number` | `text` | | 购物车名称 / 分组号,可为空;如需展示编号建议在 hooks / 业务侧补齐 |
| `cart_create` | `autodate` | 否 | 购物车项创建时间,由数据库自动生成 |
| `cart_owner` | `text` | 是 | 生成者 openid约定保存 `tbl_auth_users.openid` |
| `cart_product_id` | `text` | 是 | 产品 ID建议保存 `tbl_product_list.prod_list_id` |
| `cart_product_quantity` | `number` | | 产品数量,建议业务侧约束为正整数 |
| `cart_status` | `text` | | 购物车状态,建议值:`有效` / `无效` |
| `cart_at_price` | `number` | | 加入购物车时的价格,用于后续降价提醒或对比 |
| `cart_product_id` | `relation` | 是 | 原生关联 `tbl_product_list`,单选,保存的是目标产品记录的 PocketBase `recordId` |
| `cart_product_quantity` | `number` | | 产品数量,可为空;如传值,建议业务侧约束为正整数 |
| `cart_status` | `text` | | 购物车状态,可为空;如传值,建议值:`有效` / `无效` |
| `cart_at_price` | `number` | | 加入购物车时的价格,可为空;如传值用于后续降价提醒或对比 |
| `cart_remark` | `text` | 否 | 备注 |
| `is_delete` | `number` | 否 | 软删除标记,`0` 表示未删除,`1` 表示已删除,默认 `0` |
@@ -45,7 +45,12 @@
## 补充约定
- `cart_owner``cart_product_id` 当前按文本字段保存业务 ID不直接建立 relation便于兼容现有 hooks 业务模型
- `cart_owner` 当前按文本字段保存业务 ID
- `cart_product_id` 已改为 PocketBase 原生 `relation` 字段,关联目标集合为 `tbl_product_list`,且 `maxSelect = 1`
- 调用原生 records create / update 接口时,`cart_product_id` 必须传 **`tbl_product_list` 的 PocketBase 记录主键 `id`**,不能再传业务 ID `prod_list_id`
- 如前端当前拿到的是业务 ID `prod_list_id`,需先调用 `GET /pb/api/collections/tbl_product_list/records?filter=prod_list_id="..."&perPage=1&page=1` 查出对应 `recordId`,再把该 `recordId` 作为 `cart_product_id` 提交。
- 当前原生 collection 层面,创建时仅要求客户端显式提交非空 `cart_owner`;不再强制要求与当前 token 对应 `openid` 相等。
- 当前表结构层面,除 `cart_id``cart_owner``cart_product_id` 外,其余业务字段均允许为空。
- `cart_owner` 统一保存 `tbl_auth_users.openid`,便于直接使用微信登录返回 token 做原生访问控制。
- `is_delete` 用于软删除控制,购物车项删除时建议优先标记为 `1`
- 集合默认查询规则已内置 `is_delete = 0`,常规列表/详情不会返回已软删除数据。