feat(llm): update
This commit is contained in:
@@ -14,6 +14,7 @@ This file condenses `backend/docs/dev/http_api.md` + `backend/docs/dev/model.md`
|
|||||||
- DO keep controller methods thin: parse/bind → call `services.*` → return result/error.
|
- DO keep controller methods thin: parse/bind → call `services.*` → return result/error.
|
||||||
- DO regenerate code after changes (routes/docs/models).
|
- 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: 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: When building queries in services, improve readability by using the assignment: `tbl, query := models.<Table>Query.QueryContext(ctx)`. Then use `tbl` for field references (e.g., `tbl.ID.Eq(...)`) and `query` for chaining methods.
|
||||||
- MUST: service-layer transactions MUST use `models.Q.Transaction(func(tx *models.Query) error { ... })`; DO NOT use raw `*_db.Transaction(...)` / `db.Transaction(...)` in services unless Gen cannot express the required operation.
|
- MUST: service-layer transactions MUST use `models.Q.Transaction(func(tx *models.Query) error { ... })`; DO NOT use raw `*_db.Transaction(...)` / `db.Transaction(...)` in services unless Gen cannot express the required operation.
|
||||||
- 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: 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.
|
||||||
- DO add `// @provider` above every controller/service `struct` declaration.
|
- DO add `// @provider` above every controller/service `struct` declaration.
|
||||||
@@ -208,7 +209,7 @@ In this case:
|
|||||||
### Job(一次性任务)
|
### Job(一次性任务)
|
||||||
|
|
||||||
- `Kind() string`:任务类型标识(job kind);改名会导致“新旧任务类型不一致”。
|
- `Kind() string`:任务类型标识(job kind);改名会导致“新旧任务类型不一致”。
|
||||||
- `InsertOpts() river.InsertOpts` : 默认入队参数(队列、优先级、最大重试、唯一任务策略等)。
|
- `InsertOpts() river.InsertOpts`:默认入队参数(队列、优先级、最大重试、唯一任务策略等)。
|
||||||
- `UniqueID() string`(项目约定):周期任务 handle 的稳定 key;通常 `return Kind()`。
|
- `UniqueID() string`(项目约定):周期任务 handle 的稳定 key;通常 `return Kind()`。
|
||||||
|
|
||||||
### Worker(执行器)
|
### Worker(执行器)
|
||||||
@@ -459,4 +460,4 @@ func (s *XxxTestSuite) Test_Method() {
|
|||||||
So(got, ShouldBeNil)
|
So(got, ShouldBeNil)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user