Merge commit 'a0ee3a21cd01229a555384ad5e1f4b3ccdcdd620' into dev_jacy

This commit is contained in:
2026-07-01 19:38:05 +08:00
23 changed files with 1080 additions and 171 deletions
+22 -7
View File
@@ -1,16 +1,25 @@
---
description: packages 共享契约 — shared-types domain 变更策略
globs: packages/**/*
description: 杜康好客共享包(shared-types / domain / shared-ui)规范
globs: packages/**/*.{ts,tsx}
alwaysApply: false
---
# packages 规则
# 共享包规范
## 包职责
| 包 | 用途 | 约束 |
|----|------|------|
| `@dukang/shared-types` | DTO、枚举、错误码、JWT Payload | 前后端唯一契约 |
| `@dukang/domain` | 纯函数业务规则 | **禁止 IO**,含 Vitest 单测 |
| `@dukang/shared-ui` | H5 共享组件 + `tokens.css` | 仅 H5 三端使用 |
## shared-types
- 前后端唯一 DTO/枚举来源
- 枚举用 `SCREAMING_SNAKE_CASE`(如 `OrderStatus.PENDING_PAY`
- API Tab 查询用 snake_case`pending_pay`
- **加法优先**:新字段 optional;删除/改名先 deprecated
- 改 API 必须同步 V2 手册 §六
- 改 API 必须同步 V2 手册 §六 与 shared-types
## domain
@@ -18,11 +27,17 @@ alwaysApply: false
- 起购 2/6 瓶、权益 `benefitAmount ?? price`、核销 ¥500 上限在此实现
- 变更必须有单元测试
```typescript
const benefitAmount = product.benefitAmount ?? product.price;
// 同城起购 2 瓶 / 跨城 6 瓶
// 核销上限 ¥500
```
## shared-ui
- 跨 App 组件;禁止 import 特定 App 代码
- 设计令牌与 preV1 三 H5 共用
- admin-web 使用 Ant Design,不引用 shared-ui
## 破坏性改动
需通知 jacy-dukang 与 刘京尧(若影响 partner/shop API)并在 PR 说明影响面。
需通知 **jacy-dukang****刘京尧**(若影响 partner/shop API)并在 PR 说明影响面。Prisma 迁移需双方 Review(涉及 store/redeem 表时)。