Files
lcbp3/specs/99-archives/history/2025-12-11-correspondence-refactor.md
admin c90a664f53
All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
260222:1053 20260222 refactor specs/ #1 03-Data-and-Storage
2026-02-22 10:53:23 +07:00

2.0 KiB

Correspondence Module Refactoring Report

Date: 2025-12-11 Objective: Fix data display issues and align Correspondence Module with user requirements (Revision-based List).

🛠 Fixes & Changes

1. Revision-Based List View

  • Issue: The Correspondence List was displaying one row per Document, hiding revision history.
  • Fix: Refactored CorrespondenceService.findAll to query CorrespondenceRevision as the primary entity.
  • Outcome: The list now displays every revision (e.g., Doc-001 Rev A, Doc-001 Rev B) as separate rows. Added "Rev" column to the UI.

2. Correspondence Detail Page

  • Issue: Detail page was not displaying Subject/Description correctly (showing "-") because it wasn't resolving the currentRevision correctly or receiving unwrapped data.
  • Fix:
    • Updated CorrespondenceDetail to explicitly try finding isCurrent revision or fallback to index 0.
    • Updated useCorrespondence (via correspondence.service.ts) to correctly unwrap the NestJS Interceptor response { data: { ... } }.
  • Outcome: Detail page now correctly shows Subject, Description, and Status from the current revision.

3. Edit Functionality

  • Issue: Clicking "Edit" led to a 404/Blank page.
  • Fix:
    • Created app/(dashboard)/correspondences/[id]/edit/page.tsx.
    • Refactored CorrespondenceForm to accept initialData and supporting "Update" mode (switching between createMutation and updateMutation).
  • Outcome: Users can now edit existing DRAFT correspondences.

📂 Modified Files

  • backend/src/modules/correspondence/correspondence.service.ts
  • frontend/types/correspondence.ts
  • frontend/components/correspondences/list.tsx
  • frontend/components/correspondences/detail.tsx
  • frontend/components/correspondences/form.tsx
  • frontend/lib/services/correspondence.service.ts
  • frontend/app/(dashboard)/correspondences/[id]/edit/page.tsx (Created)

Verification

  • Validated List View shows revisions.
  • Validated Detail View loads data.
  • Validated Edit Page loads data and submits updates.