--- description: 杜康好客全局约束 — Monorepo 布局、文档优先级、2 人 OWNER 边界 alwaysApply: true --- # 杜康好客 · 核心规则 ## Monorepo 布局 - `apps/` — preV1:`h5-user`、`h5-shop`、`h5-partner`、`admin-web` - `packages/` — `shared-types`、`domain`、`shared-ui` - `server/dukang-api/` — NestJS 单体 API - `pages/` — UI 原型(**只读参照**) > V2 目标为 Taro 四端(`mini-user` 等),编码以 **当前实际目录** 为准。 ## 文档 - 业务事实源:`杜康好客-V2编码手册.md` - preV1 裁剪:`杜康好客-preV1编码手册.md` - 协作:`conventions.md` · AI 入口:`AGENTS.md` **禁止**:编码时修改业务规则;需求变更只改 V2 手册。 ## 边界(2 人团队) | 负责人 | 路径 | |--------|------| | jacy-dukang | `apps/h5-user/`, `apps/admin-web/`, `packages/`, `callbacks/`, `jobs/`, `common/`, `integrations/`, `modules/{iam,trade,benefit,analytics,catalog,settlement,ops}/` | | 刘京尧 | `apps/h5-partner/`, `apps/h5-shop/`, `modules/{store,redeem}/` | - 跨模块只 inject **exported Service**,禁止 `prisma` 写他人表 - `apps/*` 禁止 import `server/*` 或其他 app - Mock 只在 `integrations/*`,不在业务 Service 散落 ## 共享契约 - 枚举/DTO → `packages/shared-types` - 纯规则 → `packages/domain`(无 IO) ## 核心业务常量 - 权益额 = `benefit_amount ?? price` - 核销:直接核销 `0 < amount ≤ 全部 ACTIVE 权益总余额`;带单据核销 `0 < amount ≤ 该单据可用金额` - 订单 Tab:`all | pending_pay | pending_ship | pending_receive | completed` - API:`/api/v1`,响应 `{ code, message, data }` ## 提交 - Conventional Commits:`feat(trade):` 等 - 不提交 `.env`