diff --git a/backend/llm.txt b/backend/llm.txt index 8df481d..9219100 100644 --- a/backend/llm.txt +++ b/backend/llm.txt @@ -10,6 +10,7 @@ This file condenses `backend/docs/dev/http_api.md` + `backend/docs/dev/model.md` - MUST: HTTP module folder name MUST be `snake_case` (e.g. `tenant_public`), not `camelCase`/`mixedCase`. - DO keep controller methods thin: parse/bind → call `services.*` → return result/error. - DO regenerate code after changes (routes/docs/models). +- MUST: in `backend/app/services`, prefer the generated GORM-Gen DAO (`backend/database/models/*`) for DB access; treat raw `*gorm.DB` usage as a last resort. - MUST: after adding/removing/renaming any files under `backend/app/services/`, run `atomctl gen service --path ./app/services` to regenerate `backend/app/services/services.gen.go`; DO NOT edit `services.gen.go` manually. - MUST: a single service's methods MUST live in a single file; do NOT split one service across multiple files (e.g. `type user struct{}` in `user.go` but methods in `user_admin.go`), because `atomctl gen service` uses filenames to infer services and will generate incorrect `services.gen.go`. - DO add `// @provider` above every controller/service `struct` declaration. @@ -155,6 +156,42 @@ Models live in: - `atomctl gen model` +--- + +## 3) Service-layer DB access (GORM Gen) + +This project uses a PostgreSQL-focused GORM-Gen variant (`go.ipao.vip/gen` + generated `backend/database/models/*`). +Reference: `backend/llm.gorm_gen.txt`. + +### 3.1 Query style (preferred) + +- MUST: in services, build queries via: + - `tbl, q := models.