feat: 添加购物车相关迁移和索引功能
- 在 package.json 中添加迁移脚本 `migrate:cart-active-unique-index`。 - 修改 `pocketbase.cart-order.js` 文件,更新 `cart_id` 和 `cart_product_id` 字段的必填属性,并添加唯一索引 `idx_tbl_cart_owner_product_active_unique`。 - 在 `pocketbase.ensure-cart-order-autogen-id.js` 中,调整 `cart_id` 字段的必填属性为可选,并确保 `order_id` 字段为必填。 - 在 `pocketbase.product-list.js` 中,新增 `prod_list_barcode` 字段。 - 新增 `make-openapi-standalone.cjs` 脚本,用于处理 OpenAPI 文档。 - 新增 `pocketbase.cart-active-unique-index.js` 脚本,处理购物车的唯一索引和去重逻辑。
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
| `prod_list_id` | `text` | 是 | 产品列表业务 ID,唯一标识 |
|
||||
| `prod_list_name` | `text` | 是 | 产品名称 |
|
||||
| `prod_list_modelnumber` | `text` | 否 | 产品型号 |
|
||||
| `prod_list_barcode` | `text` | 否 | 产品料号 |
|
||||
| `prod_list_icon` | `text` | 否 | 产品图标,保存 `tbl_attachments.attachments_id`,多图时以 `|` 分隔 |
|
||||
| `prod_list_description` | `text` | 否 | 产品说明(editor 内容,建议保存 Markdown 或已净化 HTML) |
|
||||
| `prod_list_feature` | `text` | 否 | 产品特色 |
|
||||
@@ -50,6 +51,7 @@
|
||||
## 补充约定
|
||||
|
||||
- `prod_list_icon` 仅保存附件业务 ID,真实文件统一在 `tbl_attachments`;多图时按上传顺序使用 `|` 聚合。
|
||||
- `prod_list_barcode` 为可空文本字段,用于保存产品料号;当前已接入产品管理页录入、产品列表模糊检索以及方案模板中的产品快照展示。
|
||||
- `is_delete` 用于软删除控制,产品停用/删除时建议优先标记为 `1`。
|
||||
- 集合默认查询规则已内置 `is_delete = 0`,产品列表默认不返回已软删除记录。
|
||||
- 当前预构建脚本中已将 `listRule` 与 `viewRule` 设置为空字符串(`""`),对应 PocketBase 的“任何人可查看”。
|
||||
@@ -61,4 +63,4 @@
|
||||
- 前端渲染 `prod_list_description` 时应保持和存储格式一致(Markdown 渲染器或受控 HTML 渲染),避免直接注入未净化内容。
|
||||
- `prod_list_basic_price` 使用 `number`,如需货币精度策略建议后续统一为“分”或固定小数位。
|
||||
- PocketBase 系统字段 `created`、`updated` 仍然存在,只是不在 collection 字段清单里单独声明。
|
||||
- 本文档为预构建结构说明,尚未执行线上建表。
|
||||
- 本文档已同步当前产品表建表脚本;若已执行脚本,则以 PocketBase 实际结构为准。
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
| `scheme_template_status` | `text` | 否 | 模板状态,如有效 / 主推 / 过期 |
|
||||
| `scheme_template_solution_type` | `text` | 否 | 适用方案类型 |
|
||||
| `scheme_template_solution_feature` | `text` | 否 | 适用方案特点 |
|
||||
| `scheme_template_product_list` | `json` | 否 | 产品清单,建议格式:`[{"product_id":"PROD-xxx","qty":5,"note":"客厅使用"}]` |
|
||||
| `scheme_template_product_list` | `json` | 否 | 产品清单,支持保存精简结构或完整产品快照数组 |
|
||||
| `scheme_template_description` | `text` | 否 | 模板说明 |
|
||||
| `scheme_template_remark` | `text` | 否 | 备注 |
|
||||
| `is_delete` | `number` | 否 | 软删除标记,`0` 表示未删除,`1` 表示已删除,默认 `0` |
|
||||
@@ -53,7 +53,11 @@
|
||||
## 补充约定
|
||||
|
||||
- `scheme_template_icon` 建议延续现有项目做法,仅保存 `attachments_id`,真实文件统一走 `tbl_attachments`。
|
||||
- `scheme_template_product_list` 建议使用 `json` 数组,单项推荐结构:`product_id`、`qty`、`note`;不要保存自由格式长字符串。
|
||||
- `scheme_template_product_list` 建议使用 `json` 数组。
|
||||
- 兼容两种结构:
|
||||
- 精简结构:`{"product_id":"PROD-xxx","qty":5,"note":"客厅使用"}`
|
||||
- 完整快照结构:直接保存 `tbl_product_list` 导出的整行产品对象,至少应包含 `prod_list_id`,如存在产品型号 / 产品料号也建议一并保留(如 `prod_list_modelnumber`、`prod_list_barcode`)。
|
||||
- 页面 `/manage/scheme` 当前优先通过产品选择器保存完整产品快照,便于后续直接展示产品摘要与排序。
|
||||
- 若模板将来需要“官方模板 + 用户私有模板”并存,则需要额外引入发布状态字段或放宽公共模板读取规则;当前文档严格按 owner 私有模板设计。
|
||||
- `is_delete` 用于软删除控制,模板删除时建议优先标记为 `1`。
|
||||
- PocketBase 系统字段 `created`、`updated` 仍然存在,只是不在 collection 字段清单里单独声明。
|
||||
|
||||
Reference in New Issue
Block a user