[CLAUDE] Domain+App+Infra: Plan B Chunk C — Mig 33 ContractLevelOpinions cookie-cutter mirror PE Mig 26
- Domain/Contracts/ContractLevelOpinion.cs (NEW entity mirror PE — AuditableEntity, 4 field core + 2 nav) - Domain/Contracts/Contract.cs (+LevelOpinions nav collection) - Migrations/20260522052240_AddContractLevelOpinions.cs (3-file rule: .cs + .Designer.cs + Snapshot) - Configurations/ContractLevelOpinionConfiguration.cs (NEW separate file, mirror PE pattern) - IApplicationDbContext.cs + ApplicationDbContext.cs (+DbSet<ContractLevelOpinion>) UNIQUE composite (ContractId, ApprovalWorkflowLevelId) — 1 row per HĐ × Level. FK Cascade Contract + Restrict ApprovalWorkflowLevel. SignedByUserId KHÔNG nav (denorm SignedByFullName tránh cascade khi xoá user). Mirror PE Mig 26 pattern (S19 2026-05-09) EXACT — UPSERT row khi Approver duyệt qua Service ApproveV2Async (Plan B Chunk B em main138469dđã có TODO marker). Em main sẽ add UPSERT block sau Chunk C done (Chunk D). Verify: - dotnet build PASS 0 err (2 pre-existing warn DocxRenderer unrelated) - dotnet ef database update PASS (Mig 33 applied SolutionErp_Dev + _Design) - dotnet test 111/111 PASS (58 Domain + 53 Infra — no regression) Plan B chain (6 chunks): - A158898e8✅ ContractApprovalWorkflowV2 entity scaffold - A2a85e437✅ Contract.ApprovalWorkflowId + ContractConfiguration FK - B138469d✅ ContractWorkflowService ApproveV2Async skeleton + TODO LevelOpinion UPSERT - C (this) ✅ ContractLevelOpinions entity + Mig 33 + config + DbSet - D FE Workspace V2 (Implementer, pending) - E FE Section 5 V2 (Implementer, pending) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -35,6 +35,9 @@ public interface IApplicationDbContext
|
||||
DbSet<ContractCodeSequence> ContractCodeSequences { get; }
|
||||
DbSet<ContractChangelog> ContractChangelogs { get; }
|
||||
DbSet<ContractDepartmentApproval> ContractDepartmentApprovals { get; }
|
||||
// Plan B Chunk C (S29 — Mig 33) — Ý kiến cấp duyệt V2 dynamic cho HĐ.
|
||||
// Cookie-cutter mirror PE Mig 26 PurchaseEvaluationLevelOpinions.
|
||||
DbSet<ContractLevelOpinion> ContractLevelOpinions { get; }
|
||||
DbSet<Notification> Notifications { get; }
|
||||
DbSet<WorkflowTypeAssignment> WorkflowTypeAssignments { get; }
|
||||
DbSet<WorkflowDefinition> WorkflowDefinitions { get; }
|
||||
|
||||
Reference in New Issue
Block a user