docs: update LLM guides for models and layout rules
Document new GUIDE.md expectations for src-layer edits and add index entries for models and shared types. Clarify layout usage, composable placement, error page conventions, and model/type ownership so future changes follow the intended layer boundaries.docs: update LLM guides for models and layout rules Document new GUIDE.md expectations for src-layer edits and add index entries for models and shared types. Clarify layout usage, composable placement, error page conventions, and model/type ownership so future changes follow the intended layer boundaries.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Models Guide
|
||||
|
||||
`models` 放 domain model 與 page model 型別定義。model 只定義形狀(interface/type),不含業務邏輯、API 呼叫或 UI 狀態。
|
||||
|
||||
## 種類
|
||||
|
||||
- **Domain Model**:特定領域的資料型別,例如 `StudentRecord`。檔名用 domain 命名(`student.ts`),型別使用 domain 前綴。
|
||||
- **Page Model**:`page.ts` 定義頁面驅動資料的 union type,供 page driver 組裝後傳給 page component。例如 `BasePageModel`、`MaintenancePageModel`。
|
||||
|
||||
## 規則
|
||||
|
||||
- 用 interface 或 type,不加 class。
|
||||
- domain model 應與 service response / store state 共用型別來源。
|
||||
- page model 僅定義畫面需要的欄位,不鏡像整個 service response。
|
||||
- 不 import component、view、store、composable。
|
||||
- 型別 export 時明確命名,避免與其他層混淆。
|
||||
|
||||
## Page Model 慣例
|
||||
|
||||
`src/models/page.ts` 定義基礎型別與 union:
|
||||
|
||||
- `BasePageModel`:所有頁面共用欄位(`title`、`loading`、`error`)。
|
||||
- 各頁面的 specific model 擴展 `BasePageModel`(例如 `MaintenancePageModel` 加 `type`、`records`)。
|
||||
- `PageModel` union 供 page component props 型別使用。
|
||||
|
||||
新增頁面類型時,先擴充 `PageModel` union 再新增對應的 page driver。
|
||||
Reference in New Issue
Block a user