This commit is contained in:
2026-06-30 10:33:56 +08:00
commit 6e047dc0a5
607 changed files with 65966 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
# 杜康好客 · 协同与开发规范
> **编码事实源**:根目录 [`杜康好客-V2编码手册.md`](./杜康好客-V2编码手册.md)PRD + DB v3.1 + API + 计划 + 架构)
> **preV1 Mock 联调**[`杜康好客-preV1编码手册.md`](./杜康好客-preV1编码手册.md)
---
## 1. 代码所有权
见 [`.github/CODEOWNERS`](./.github/CODEOWNERS)。端与后端模块边界:
| 目录 | Owner | 说明 |
|------|-------|------|
| `apps/mini-user` | @dev-a | C端小程序 |
| `apps/mini-partner` | @dev-b | 城市合伙人小程序 |
| `apps/mini-hq` | @dev-c | 总部管理小程序 |
| `apps/h5-shop` | @dev-d | 门店 H5 |
| `server/.../modules/{iam,trade,benefit,analytics}` | @dev-a | 交易与权益域 |
| `server/.../modules/store` | @dev-b | 门店域 |
| `server/.../modules/{catalog,settlement,ops}` | @dev-c | 开城与结算域 |
| `server/.../modules/redeem` | @dev-d | 核销域 |
| `server/.../callbacks`, `jobs`, `common` | @backend-lead | 回调与任务 |
| `packages/*` | 全员 + @tech-lead | 公共契约,破坏性改动谨慎 |
| `server/dukang-api/prisma` | 全部 Owner | 迁移必须多人 Review |
---
## 2. 模块边界(机器 + 人工)
- 任一 `apps/*` **禁止** import 另一个 app 或 `server/*` 源码。
- 后端 Module **禁止** 跨模块直写 Prisma 表,只 inject 对方 `exports` 的 Service(见编码手册 §四 §2.5)。
- 共享逻辑:`packages/shared-types`DTO/枚举)、`packages/domain`(纯函数规则)。
- 计划引入 `eslint-plugin-boundaries`,在 `pnpm lint` / CI 阶段强制。
---
## 3. 接口契约
- 单一事实源:`packages/shared-types` + `杜康好客-V2编码手册.md` §六。
- **加法优先**:新字段 optional;删除/改名先 deprecated。
- 改了 API 必须同步更新手册 §六 与 shared-types。
- 破坏性变更走 URI 版本 `/v1``/v2`
---
## 4. 数据库契约(v3.1
- 表结构事实源:编码手册 **§五**28 表,`user_`/`common_`/`log_` 等前缀)。
- Prisma schema 与手册保持一致;初始化 SQL 见 `server/dukang-api/prisma/init_v3.sql`
- 关键约定:
- C 端 `user_user.phone` 唯一;B 端 `store_account` / `partner_account` / `hq_account` 三表分离
-`payments` / `user_order_item` / `redeem_tokens`
- 埋点 → `log_user_analytics`;业务事件 → `common_event`;工单 → `common_ticket`
---
## 5. 分支与提交
- feature 分支 + 小步 PR;跨模块改动需相关双 Owner Review。
- Conventional Commitsscope 用端或模块名:`feat(user)``fix(trade)``chore(shared-types)`
---
## 6. 本地环境
- Docker Compose 起 MySQL + Redis + serverM0 交付 `deploy/docker-compose.yml`)。
- 敏感配置走 `.env`,不入库。
- `DATABASE_URL` 配置后:`npx prisma migrate dev` 或执行 `init_v3.sql`
---
## 7. 原型参照
- UI 以 `pages/{user,shop,partner,hq}/` 为准;与 PRD 映射见编码手册 **§二、§三**。
- C 端订单列表必须为 **5 Tab**(含待发货);V1 无会员等级标签。