---
paths: src/services/**/*.ts
---
# 规则：不要直接修改 src/services 目录，使用 typings.d.ts 获取类型

## 规则说明

`packages/app-operation/src/services/` 目录下的文件由 OpenAPI 自动生成，不应手动修改。

## 目录结构

```
src/services/
├── index.ts              # 导出入口（自动生成）
├── business/             # 业务 API
│   ├── index.ts          # 模块导出（自动生成）
│   ├── order.ts          # API 实现（自动生成）
│   └── typings.d.ts      # 类型定义（从 typings.d.ts 读取）
├── auth/
│   ├── index.ts
│   ├── user.ts
│   └── typings.d.ts
└── ...
```

## 禁止行为

- ❌ 直接修改 `src/services/**/*.ts` 文件
- ❌ 在 `.ts` 文件中添加、删除或修改 API 函数
- ❌ 手动编辑类型定义

## 正确做法

### 1. 获取类型信息

当需要查看或使用 API 类型时，**必须**使用 Glob/Grep 工具读取 `typings.d.ts` 文件：

```bash
# 正确：读取类型定义文件
Glob pattern: "packages/app-operation/src/services/**/typings.d.ts"
Grep pattern: "OrderVO" path: "packages/app-operation/src/services/business/typings.d.ts"

# 错误：直接读取 .ts 实现文件
Read file: "packages/app-operation/src/services/business/typings.d.ts"
```

### 2. 查找 API 函数

查找 API 函数时，通过模块名推断文件位置，使用 Grep 搜索：

```bash
# 查找订单相关 API
Grep path: "packages/app-operation/src/services" pattern: "order"
```

### 3. 更新 API

如需更新 API 类型定义，运行：

```bash
cd packages/app-operation
pnpm openapi
```

## 类型命名规范

`typings.d.ts` 中的类型遵循以下命名模式：

| 类型后缀 | 用途 | 示例 |
|---------|------|------|
| `VO` | 视图对象（响应） | `OrderVO` |
| `Qry` | 查询参数 | `OrderPageQry` |
| `Cmd` | 命令参数（创建/更新） | `OrderCreateCmd` |
| `PageQry` | 分页查询 | `OrderPageQry` |

## 违反此规则的后果

- 手动修改会在 `pnpm openapi` 后被覆盖
- 可能导致 API 类型与后端不一致
- 破坏自动生成机制的完整性
