Files
dukang/conventions.md
T
2026-07-01 17:12:46 +08:00

83 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 杜康好客 · 协同与开发规范
> **编码事实源**:根目录 [`杜康好客-V2编码手册.md`](./杜康好客-V2编码手册.md)PRD + DB v3.1 + API + 计划 + 架构)
> **preV1 Mock 联调**[`杜康好客-preV1编码手册.md`](./杜康好客-preV1编码手册.md)
---
## 1. 代码所有权
见 [`.github/CODEOWNERS`](./.github/CODEOWNERS)。**2 人团队**Git 账号):
| Git 账号 | 角色 | 主责 |
|----------|------|------|
| `jacy-dukang` | 管理员 + 主责开发 | C 端、admin-web、后端主模块、横切 |
| `刘京尧` | 开发 | 合伙人 H5、门店 H5、store/redeem 模块 |
端与后端模块边界:
| 目录 | 负责人 | 说明 |
|------|--------|------|
| `apps/h5-user` | jacy-dukang | C 端 H5V2 → mini-user |
| `apps/admin-web` | jacy-dukang | preV1 总部替代 |
| `apps/h5-partner` | 刘京尧 | 合伙人 H5 |
| `apps/h5-shop` | 刘京尧 | 门店 H5 |
| `server/.../modules/{iam,trade,benefit,analytics}` | jacy-dukang | 交易与权益域 |
| `server/.../modules/{catalog,settlement,ops}` | jacy-dukang | 开城与结算域 |
| `server/.../modules/store` | 刘京尧 | 门店域 |
| `server/.../modules/redeem` | 刘京尧 | 核销域 |
| `server/.../callbacks`, `jobs`, `common`, `integrations` | jacy-dukang | 回调与任务 |
| `packages/*` | jacy-dukang 主责;破坏性改动 @刘京尧 | 公共契约 |
| `server/dukang-api/prisma` | jacy-dukang + 刘京尧(涉及 store/redeem 表时) | 迁移 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 无会员等级标签。