app-template/packages/models/AGENTS.md

39 lines
1.2 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.

# AGENTS.md — @app/models
## 职责
**Drizzle ORM 表定义**(数据库 schema 的唯一源)。只描述表结构与行类型,不含连接、查询逻辑或迁移脚本。
## 结构
```
src/
users.ts # users sqliteTable + User / NewUser
sessions.ts # sessions
password-resets.ts # passwordResets
index.ts # 重导出全部表与行类型
```
## 约定
- 表用 `sqliteTable`(Turso/libSQL)。主键默认 `text` + `crypto.randomUUID()`。
- 时间戳用 `integer(..., { mode: "timestamp" })`,默认 `unixepoch()`。
- 同步导出 `$inferSelect` / `$inferInsert` 类型(如 `User`、`NewUser`)。
## 修改指南
- **加表/改列**:改这里 → `yarn workspace @app/db db:generate`(或 `db:push`)→ 更新 `@app/dao` 对应 dao。
- 查询写在 `@app/dao`,不在本包写 `db.select`。
- 不要引入 `@libsql/client` 或环境变量;本包保持纯 schema。
- 重命名/删除列是破坏性变更:先确认无 dao/service/API 依赖,再生成迁移。
## 命令
```bash
yarn workspace @app/models typecheck
yarn workspace @app/models build
# schema 变更后的迁移在 @app/db:
yarn db:generate
yarn db:push
```