1.1 KiB
1.1 KiB
AGENTS.md — @app/dao
职责
数据访问层(DAO):封装 Drizzle 查询(userDao / sessionDao / passwordResetDao)。service 只调本包,不直接 db.select。不含业务规则、HTTP/tRPC。
结构
src/
index.ts # 出口:daos + 行类型
users.ts # userDao
sessions.ts # sessionDao
password-resets.ts # passwordResetDao
依赖
@app/db:db单例(连接)@app/models:表定义与$infer*行类型
约定
- 一表一个 dao 对象;方法名
list/getById/create/update/delete。 exactOptionalPropertyTypes:update 入参用Partial<Omit<Row, "id" | "createdAt" | "updatedAt">>。noUncheckedIndexedAccess:returning()[0]判空后抛错或?? null。- 不读 env、不建 client;环境变量校验在
@app/db。
修改指南
- 加查询:新建或扩展对应
*.ts,在index.ts导出。 - 新表:先改
@app/models→yarn db:generate/db:push→ 本包加 dao。
命令
yarn workspace @app/dao typecheck
yarn workspace @app/dao build