chore: 文档与 IDE 配置整理
- .kiro/specs/ → docs/specs/(41 个历史需求 spec 迁移,移除 .config.kiro) - CLAUDE.md 三层拆分:根文件精简 + apps/backend/CLAUDE.md + .claude/commands/ - 新增 /spec-close、/pre-change 两个工作流命令 - DDL 基线刷新(从测试库重新导出 11 个文件,dws 35→38 表,biz 18→21 表) - BD_Manual → BD_manual 命名统一(48 个文件) - 修复 3 处文档与数据库不一致(auth.users.status 默认值、scheduled_tasks 字段、RLS 视图数) - 新增 BD_manual_public_rbac_tables.md(public schema 8 张 RBAC/工作流表) - 合并 biz.trigger_jobs 文档(10→12 字段,归档独立文档) - docs/database/README.md 索引更新 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
| zqyy_app / test_zqyy_app | public | member_retention_clue | 新建 | 维客线索表 |
|
||||
| zqyy_app / test_zqyy_app | public | member_retention_clue.source | 新增列 | 2026-02-27 补齐线索来源字段 |
|
||||
| zqyy_app / test_zqyy_app | public | member_retention_clue.category | 约束变更 | 2026-03-08 枚举对齐:`客户基础信息` → `客户基础` |
|
||||
| zqyy_app / test_zqyy_app | public | member_retention_clue.is_hidden | 新增列 | 2026-03-20 NS4 租户管理后台:隐藏/显示控制 |
|
||||
|
||||
### 表结构
|
||||
|
||||
@@ -29,6 +30,7 @@
|
||||
| recorded_at | TIMESTAMPTZ | NOT NULL DEFAULT NOW() | 记录时间 |
|
||||
| site_id | BIGINT | NOT NULL | 门店 ID(多门店隔离) |
|
||||
| source | VARCHAR(20) | NOT NULL DEFAULT 'manual' | 线索来源(2026-02-27 新增) |
|
||||
| is_hidden | BOOLEAN | NOT NULL DEFAULT false | 是否隐藏(true=管理后台保留但小程序不展示)(2026-03-20 新增) |
|
||||
|
||||
### category 枚举值
|
||||
|
||||
@@ -65,6 +67,7 @@
|
||||
|
||||
- **后端 API**:`POST /api/member-birthday` 废弃,替换为 `POST /api/retention-clue`、`GET /api/retention-clue/{member_id}`、`DELETE /api/retention-clue/{clue_id}`
|
||||
- **source 字段**(2026-02-27):`POST /api/retention-clue` 接受可选 `source` 参数,默认 `manual`;`GET` 返回中包含 `source` 字段。已有数据自动填充 `DEFAULT 'manual'`,向后兼容
|
||||
- **is_hidden 字段**(2026-03-20 NS4):租户管理后台线索隐藏/显示控制。`DEFAULT false` 保证已有数据兼容。小程序端线索查询已追加 `WHERE is_hidden = false` 条件,隐藏线索仅在管理后台可见。租户管理后台路由 `tenant_clues.py` 提供 `PATCH /api/tenant/clues/{id}/visibility` 端点切换状态
|
||||
- **ETL Connector**:DWS 任务移除 FDW 读取 `member_birthday_manual` 的逻辑,生日仅从 `dim_member.birthday`(API 来源)读取
|
||||
- **FDW**:`fdw_app.member_birthday_manual` 外部表需在 ETL 库侧同步更新为 `fdw_app.member_retention_clue`(含 `source` 列)
|
||||
- **小程序**:助教端调用新 API 提交维客线索
|
||||
@@ -102,13 +105,13 @@ SELECT table_name FROM information_schema.tables
|
||||
WHERE table_schema = 'public' AND table_name = 'member_retention_clue';
|
||||
-- 预期:1 行
|
||||
|
||||
-- 3. 确认列结构完整(10 列)
|
||||
-- 3. 确认列结构完整(11 列)
|
||||
SELECT column_name, data_type, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public' AND table_name = 'member_retention_clue'
|
||||
ORDER BY ordinal_position;
|
||||
-- 预期:id, member_id, category, summary, detail,
|
||||
-- recorded_by_assistant_id, recorded_by_name, recorded_at, site_id, source
|
||||
-- recorded_by_assistant_id, recorded_by_name, recorded_at, site_id, source, is_hidden
|
||||
|
||||
-- 4. 确认 CHECK 约束
|
||||
SELECT conname FROM pg_constraint
|
||||
@@ -143,6 +146,23 @@ SELECT col_description(
|
||||
-- 9. 确认已有数据的 source 分布
|
||||
SELECT source, COUNT(*) FROM member_retention_clue GROUP BY source;
|
||||
-- 预期:全部为 'manual'(或空表)
|
||||
|
||||
-- 10. 确认 is_hidden 列存在且默认值正确(2026-03-20)
|
||||
SELECT column_name, data_type, column_default, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'member_retention_clue'
|
||||
AND column_name = 'is_hidden';
|
||||
-- 预期:1 行,boolean, false, NO
|
||||
|
||||
-- 11. 确认已有数据的 is_hidden 分布(2026-03-20)
|
||||
SELECT is_hidden, COUNT(*) FROM member_retention_clue GROUP BY is_hidden;
|
||||
-- 预期:全部为 false(DEFAULT false 保证兼容)
|
||||
|
||||
-- 12. 确认列结构完整(11 列,含 is_hidden)
|
||||
SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema = 'public' AND table_name = 'member_retention_clue';
|
||||
-- 预期:11
|
||||
```
|
||||
|
||||
## 关联文件
|
||||
@@ -150,9 +170,11 @@ SELECT source, COUNT(*) FROM member_retention_clue GROUP BY source;
|
||||
- 迁移脚本(建表):`db/zqyy_app/migrations/2026-02-26__refactor_birthday_to_retention_clue.sql`
|
||||
- 迁移脚本(source 列):`db/zqyy_app/migrations/2026-02-27__add_source_to_retention_clue.sql`
|
||||
- 迁移脚本(category 枚举对齐):`db/zqyy_app/migrations/2026-03-08__align_retention_clue_category_enum.sql`
|
||||
- 迁移脚本(is_hidden 列):`db/zqyy_app/migrations/2026-03-xx__ns4_member_clue_is_hidden.sql`
|
||||
- FDW 反向映射(生产):`db/fdw/setup_fdw_reverse.sql`
|
||||
- FDW 反向映射(测试):`db/fdw/setup_fdw_reverse_test.sql`
|
||||
- 后端路由:`apps/backend/app/routers/member_retention_clue.py`
|
||||
- 后端路由(租户管理后台):`apps/backend/app/routers/tenant_clues.py`
|
||||
- 后端模型:`apps/backend/app/schemas/member_retention_clue.py`
|
||||
- H5 原型:`docs/h5_ui/pages/customer-detail.html`、`docs/h5_ui/pages/task-detail.html`
|
||||
- 旧表文档(已归档):`docs/database/_archived/BD_Manual_member_birthday_manual.md`
|
||||
|
||||
Reference in New Issue
Block a user