feat: scaffold supabase multi-tenant backend

This commit is contained in:
Codex
2026-06-21 21:54:43 +08:00
commit c9c767c7bd
99 changed files with 36660 additions and 0 deletions

28
docs/refactor/README.md Normal file
View File

@@ -0,0 +1,28 @@
# SaaS 重构工作区
这个目录记录从 PocketBase 单体项目迁移到 Supabase/PostgreSQL + 新 API + Taro 学生端的重构过程。
当前第一阶段目标:
- 本地 Supabase 能启动并创建多租户 PostgreSQL schema。
- 新 API 能连接数据库并解析租户。
- PocketBase 的 `docs/pb_schema.json` 能被解析,后续真实数据导出后可导入到新库。
- 先保留旧 React Web 项目,逐步把学生端和后台接到新 API。
关键文件:
- `supabase/config.toml`:本地 Supabase 配置。
- `supabase/migrations/202606210001_core_multitenant_schema.sql`:第一版商用级多租户 schema。
- `apps/api`:新业务 API 服务,内部按 `src/core``src/features` 分层。
- `packages/config``packages/db``packages/domain`:新系统共享基础包。
- `scripts/import-pocketbase`PocketBase schema/数据导入工具。
- `docker-compose.api.yml``apps/api/Dockerfile`:本地 Docker API 运行入口。
- `docs/refactor/architecture.md`:新重构目录边界和工程规范。
下一步优先级:
1. 导出 PocketBase 真实数据到 `pb_export/*.json`
2. 执行 `npm run pb:import:json``npm run pb:import:validate`
3. 按学生端页面逐步从 PocketBase SDK 切换到 `src/services/supabaseApi.ts`
4. 为订单、支付、权益开通补齐 API 写入流程和 webhook 幂等处理。
5. 新建 Taro 学生端时复用同一套租户解析和业务 API不另起一套后端。