[CLAUDE] Docs: S44 monthly drift audit + AI_INFRA bundle 06-01 adopt

Cadence audit (2026-06-01), docs-only -> CI-skip. investigator-codebase
drift scan (ground-truth from disk) -> em main patch. No code touched,
154 test unchanged.

Drift fixes (42 count corrections): 40->42 mig, 84/59/55/47->91 tables,
130/111->154 test, 52/49->56 gotcha across CLAUDE.md, docs/CLAUDE.md,
ef-core-migration + dependency-audit skills, schema-diagram, database-guide.
schema-diagram migration table extended Mig 17-42; ef-core history Mig 27-42;
detailed-section gap (Mig 27-42 modules) flagged explicit (deferred, not silent).

AI_INFRA bundle 06-01 (federated, full scope):
- A: RAG T1/T2 auto-ack
- C: hygiene 7/7 agent-mem L1 <=16KB; "25KB"->"~30KB tiered" wording x7
- D: #4 self-sustaining adoption-report step -> /session-end Phase 6.3
- E/F: report + ledger -> docs/governance/

Carry-over .mcp.json + BROADCAST-05-29 left untouched (concurrency rule).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-06-01 12:39:56 +07:00
parent 197c72f352
commit ae30f8f5e2
17 changed files with 160 additions and 42 deletions

View File

@ -1,7 +1,7 @@
# Database Guide — SOLUTION_ERP
> **DB engine:** SQL Server 2022 (LocalDB dev, full instance prod)
> **ORM:** EF Core 10 Code-First migrations — **47 bảng, 13 migration** (Init → AddPurchaseEvaluationCodeSequences)
> **ORM:** EF Core 10 Code-First migrations — **91 bảng, 42 migration** (Init → AddLeaveBalances)
> **DbContext:** [`ApplicationDbContext`](../../src/Backend/SolutionErp.Infrastructure/Persistence/ApplicationDbContext.cs) extends `IdentityDbContext<User, Role, Guid>`
> **Current schema + ERD:** xem [`schema-diagram.md`](schema-diagram.md) (luôn cập nhật)
>

View File

@ -1,6 +1,6 @@
# Schema Diagram — Luồng DB SOLUTION_ERP
> ERD đầy đủ + mối quan hệ **36 table** sau Migration 11 (Tier 3 + 4-bảng overhaul + 4 master catalogs + Role/User VN). Mermaid render ở VS Code / GitHub / Gitea.
> ERD core mermaid dưới = **36 table** (Migration 11 Tier 3 + 4-bảng overhaul + 4 master catalogs + Role/User VN). Module mở rộng Mig 12-42 → migration table §7 + section §11-15. **Tổng schema hiện tại: 91 table (Mig 42, 2026-05-30).** Mermaid render ở VS Code / GitHub / Gitea.
## 1. Full ERD
@ -485,8 +485,36 @@ COMMIT;
| **14** | **`AddBudgets`** | **4 bảng module Ngân sách: Budgets + BudgetDetails + BudgetApprovals + BudgetChangelogs. + nullable FK index Contract.BudgetId & PurchaseEvaluation.BudgetId** |
| **15** | **`AddPurchaseEvaluationDepartmentOpinions`** | **1 bảng `PurchaseEvaluationDepartmentOpinions` (UNIQUE PEId+Kind, max 1 row mỗi loại phòng ban per phiếu — UPDATE in-place, audit qua Changelog)** |
| **16** | **`AddTwoStageDeptApprovalAndSmartReject`** | **3 bảng `Contract/PurchaseEvaluation/Budget DepartmentApprovals` (UNIQUE TargetId+Phase+Dept+Stage cho 2-stage NV/TPB approval per phòng × phase) + 4 ALTER (`Users.CanBypassReview` bit + 3 `RejectedFromPhase` int cho smart reject quay về Drafter + jump-back phase đã reject)** |
| **17** | **`AddManualBudgetFieldsToPeAndContract`** | **4 ALTER (PE + HĐ × `BudgetManualName` + `BudgetManualAmount`) — manual budget fallback. Không bảng mới.** |
| **18** | **`AddPeWorkflowInnerStepsAndPositionLevel`** | **N-stage PE — 1 bảng `PurchaseEvaluationWorkflowStepInnerSteps` + 2 ALTER (`Users.PositionLevel` + `PEDeptApproval.InnerStepId`). (Mig 21 drop sau.)** |
| **19** | **`AlterPeDeptApprovalsUniqueFilteredForInnerSteps`** | **Filtered unique split legacy/N-stage. Không bảng mới.** |
| **20** | **`AddContractWorkflowInnerStepsAndAlterDeptApprovalUnique`** | **N-stage Contract mirror — 1 bảng `WorkflowStepInnerSteps` + ALTER. (Mig 21 drop sau.)** |
| **21** | **`RefactorWorkflowToFlatModel`** | **🎯 DRASTIC: bỏ phase enum legacy → ChoDuyet=10 flat. DROP TABLE × 2 (InnerSteps PE+Contract) + ALTER tracking.** |
| **22** | **`AddApprovalWorkflowsV2`** | **🎯 V2 schema — 3 bảng `ApprovalWorkflows` + `ApprovalWorkflowSteps` + `ApprovalWorkflowLevels` + enum ApplicableType. Quy trình > Bước (Phòng) > Cấp (NV).** |
| **23** | **`AddApprovalWorkflowIdToPurchaseEvaluation`** | **Pin V2 vào PE — `PE.ApprovalWorkflowId`. Không bảng mới.** |
| **24** | **`AddCurrentApprovalLevelOrderToPe`** | **Service V2 wire — `PE.CurrentApprovalLevelOrder`. Không bảng mới.** |
| **25** | **`AddIsUserSelectableToApprovalWorkflows`** | **ALTER `ApprovalWorkflows` +`IsUserSelectable bit`. Không bảng mới.** |
| **26** | **`AddPeLevelOpinionsForV2`** | **1 bảng `PurchaseEvaluationLevelOpinions` (UNIQUE PEId+LevelId, FK Cascade Pe + Restrict Level). Section 5 V2 dynamic.** |
| **27** | **`AddVisibilityAndDisplayLabelToMenuItems`** | **2 ALTER `MenuItems` (+IsVisible +DisplayLabel) — admin ẩn/hiện + đổi tên menu eOffice. Không bảng mới.** |
| **28** | **`AddAdvancedOptionsToApprovalWorkflows`** | **ALTER `ApprovalWorkflows` advanced options. Không bảng mới.** |
| **29** | **`RefactorAdvancedOptionsToPerLevelAndDrafterUser`** | **Refactor advanced options → per-Level + DrafterUser. Không bảng mới.** |
| **30** | **`AddAllowApproverEditBudgetToLevels`** | **ALTER `ApprovalWorkflowLevels` +`AllowApproverEditBudget`. Không bảng mới.** |
| **31** | **`RefactorSkipToFinalToApproverLevel`** | **Per-Approver-slot skip-to-final. Không bảng mới.** |
| **32** | **`AddApprovalWorkflowToContract`** | **🎯 Contract V2 wire (Plan B) — 2 ALTER `Contracts` (+ApprovalWorkflowId +CurrentApprovalLevelOrder) mirror PE Mig 23-24. Không bảng mới.** |
| **33** | **`AddContractLevelOpinions`** | **1 bảng `ContractLevelOpinions` (UNIQUE ContractId+LevelId, mirror PE Mig 26). Section "Ý kiến cấp duyệt" V2.** |
| **34** | **`AddEmployeeProfiles`** | **HRM core — `EmployeeProfiles` + satellite tables (N-satellite per parent).** |
| **35** | **`AddHrmConfigs`** | **HRM config catalogs (LeaveTypes / Holidays UNIQUE composite / ...).** |
| **36** | **`AddMeetingRooms`** | **Office — `MeetingRooms` + booking.** |
| **37** | **`ExtendApplicableTypeForWorkflowApps`** | **Enum extend `ApplicableType` (+Proposal +WorkflowApps). Không bảng mới.** |
| **38** | **`AddProposals`** | **Module Đề xuất (Proposal) — tables + workflow V2 mirror PE/Contract.** |
| **39** | **`AddWorkflowApps`** | **Workflow Apps skeleton — Leave/OT/Travel/Vehicle/Ticket request tables.** |
| **40** | **`AddAttendances`** | **Chấm công (Attendance) tables + Dashboard NS skeleton.** |
| **41** | **`WireWorkflowAppsApprovalV2`** | **🎯 P11-A — 4 `{Leave,Ot,Travel,Vehicle}LevelOpinions` + `WorkflowAppCodeSequences` + 4 ALTER RejectedFromStatus + enum TravelRequest=9.** |
| **42** | **`AddLeaveBalances`** | **🎯 P11-B — 1 bảng `LeaveBalances` (User×LeaveType×Year, UNIQUE composite + FK LeaveTypes Restrict). Trừ phép tự động khi đơn nghỉ duyệt cuối.** |
Tổng: **55 bảng** (+ `__EFMigrationsHistory` hệ thống).
Tổng: **91 bảng** (Mig 42, + `__EFMigrationsHistory` hệ thống).
> ⚠️ **ERD chi tiết §11-15 cover Mig 12-26.** Mig 16-21 + 27-42 (DepartmentApprovals, flat-refactor, Contract V2, HRM/Office/Proposal/WorkflowApps/Attendance/LeaveBalance) — migration index ở bảng trên + skill `ef-core-migration`; schema field chi tiết xem entity `Configurations/` + session logs. Full per-table ERD sections cho module mới = **deferred backlog** (không silent — xem STATUS Maintenance backlog).
## 8bis. Bảng mới sau Migration 9-11