37 lines
1.0 KiB
Plaintext
37 lines
1.0 KiB
Plaintext
---
|
||
description: 杜康好客共享包(shared-types / domain / shared-ui)规范
|
||
globs: packages/**/*.{ts,tsx}
|
||
alwaysApply: false
|
||
---
|
||
|
||
# 共享包规范
|
||
|
||
## 包职责
|
||
|
||
| 包 | 用途 | 约束 |
|
||
|----|------|------|
|
||
| `@dukang/shared-types` | DTO、枚举、错误码、JWT Payload | 前后端唯一契约 |
|
||
| `@dukang/domain` | 纯函数业务规则 | **禁止 IO**,含 Vitest 单测 |
|
||
| `@dukang/shared-ui` | H5 共享组件 + `tokens.css` | 仅 H5 三端使用 |
|
||
|
||
## shared-types
|
||
|
||
- 枚举用 `SCREAMING_SNAKE_CASE`(如 `OrderStatus.PENDING_PAY`)
|
||
- API Tab 查询用 snake_case(`pending_pay`)
|
||
- **加法优先**:新字段 optional;删除/改名先 deprecated
|
||
- 改 API 必须同步 V2 手册 §六 与 shared-types
|
||
|
||
## domain
|
||
|
||
纯规则示例(无数据库/HTTP):
|
||
|
||
```typescript
|
||
const benefitAmount = product.benefitAmount ?? product.price;
|
||
// 同城起购 2 瓶 / 跨城 6 瓶
|
||
// 核销上限 ¥500
|
||
```
|
||
|
||
## 破坏性改动
|
||
|
||
`packages/*` 改动需全员 + tech-lead Review;Prisma schema 迁移需全部 Owner Review。
|