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

4.6 KiB
Raw Blame History

pb_tbl_scheme

来源用户提供的结构草图2026-04-08与现有 tbl_cart / tbl_order owner 行级权限模式 类型:base 状态:draft,仅文档设计,尚未执行建表 读写规则:任意已登录用户可新增,但仅可访问 scheme_owner = 当前 token 对应 openidis_delete = 0 的记录

表用途

用于存储用户自己的方案主表,承载方案名称、适用酒店类型、方案筛选条件、房型配置、设备偏好以及引用的高/中/低端模板。

字段清单

字段名 类型 必填 说明
id text PocketBase 记录主键
scheme_id text 方案业务 ID唯一标识
scheme_name text 方案名称
scheme_owner text 方案所有者 openid保存 tbl_auth_users.openid
scheme_share_status text 方案分享状态,便于快速识别是否已分享
scheme_expires_at date 方案有效期
scheme_hotel_type text 酒店类型,如经济型 / 中高端 / 连锁型 / 特色名宿 / 特色酒店
scheme_solution_type text 方案类型,建议保存枚举或 `
scheme_solution_feature text 方案特点,建议保存枚举或 `
scheme_room_type json 房型配置,建议格式:[{"room_type":"大床房","qty":20}]
scheme_curtains text 窗帘类型
scheme_voice_device text 语音设备
scheme_ac_type text 空调类型
scheme_template_highend text 高端模板 ID建议保存 tbl_scheme_template.scheme_template_id
scheme_template_midend text 中端模板 ID建议保存 tbl_scheme_template.scheme_template_id
scheme_template_lowend text 地端模板 ID建议保存 tbl_scheme_template.scheme_template_id
scheme_status text 方案状态,如草稿 / 生效 / 失效
scheme_remark text 备注
is_delete number 软删除标记,0 表示未删除,1 表示已删除,默认 0

索引

索引名 类型 说明
idx_tbl_scheme_scheme_id UNIQUE INDEX 保证 scheme_id 唯一
idx_tbl_scheme_scheme_owner INDEX 加速按方案所有者查询
idx_tbl_scheme_scheme_name INDEX 加速按方案名称检索
idx_tbl_scheme_scheme_share_status INDEX 加速按分享状态过滤
idx_tbl_scheme_scheme_expires_at INDEX 加速按有效期过滤
idx_tbl_scheme_scheme_hotel_type INDEX 加速按酒店类型过滤
idx_tbl_scheme_scheme_solution_type INDEX 加速按方案类型过滤
idx_tbl_scheme_scheme_solution_feature INDEX 加速按方案特点过滤
idx_tbl_scheme_scheme_status INDEX 加速按方案状态过滤
idx_tbl_scheme_owner_status INDEX 加速同一用户下按状态查询

建议 PocketBase 原生权限规则

说明:

  • 采用和 tbl_cart / tbl_order 一致的 owner 行级隔离模式。
  • 这里按“任意已登录用户可创建自己的方案”设计,因此 createRule 仍要求携带有效 token。
  • 若后续由 hooks 自动回填 scheme_owner,也建议保留 @request.body.scheme_owner = @request.auth.openid 约束,避免越权代建。
Rule 建议表达式
listRule @request.auth.id != "" && scheme_owner = @request.auth.openid && is_delete = 0
viewRule @request.auth.id != "" && scheme_owner = @request.auth.openid && is_delete = 0
createRule @request.auth.id != "" && @request.body.scheme_owner = @request.auth.openid
updateRule @request.auth.id != "" && scheme_owner = @request.auth.openid && is_delete = 0
deleteRule @request.auth.id != "" && scheme_owner = @request.auth.openid && is_delete = 0

补充约定

  • scheme_template_highend / scheme_template_midend / scheme_template_lowend 当前建议先保存模板业务 ID不直接建立 relation便于兼容现有 hooks 风格。
  • scheme_room_type 推荐使用 json 数组,避免后续字符串解析成本。
  • scheme_solution_typescheme_solution_feature 如果后续要做模板筛选,建议统一保存字典枚举值,而不是自由文本。
  • is_delete 用于软删除控制;对外列表、详情、修改、删除规则都建议默认排除已删除数据。
  • PocketBase 系统字段 createdupdated 仍然存在,只是不在 collection 字段清单里单独声明。