[Chore-1100] ADR-100 app catch-up: matter templates composition

Story 1100Epic None100 files · +14704/−7378

PR #271 · pramaan-io/pramaan-app · merged 2026-06-09

Why this matters

App and backend are speaking two different matter languages

Story eleven-hundred

Backward compatibility is a trap — switch the whole shape, or the day backend hardens the contract, your app dies.

The fix — Match the contract — template id, composition counts, renamed proceeding fields — or every matter request is a mistranslation.

How it flows

sequenceDiagram
  autonumber
  participant backend as Backend (pramaan-functions)
  participant spec as OpenAPI spec
  participant codegen as pnpm codegen
  participant app as App (lib + UI + mocks)
  backend->>spec: new matter template contract
  spec->>codegen: pnpm codegen runs
  codegen->>app: fresh hooks + schemas land in src/gen
  app->>app: gateway, types, UI, mocks, stories all adopt new shape

Files changed (100)

File±
openapi/app-api.json ★+4315 −2353
src/app/[locale]/(workspace)/matters/[matterId]/page.tsx+24 −31
src/app/[locale]/(workspace)/matters/actions.ts+3 −10
src/app/[locale]/(workspace)/matters/page.tsx+5 −10
src/app/api/internal/matter-types/route.ts+0 −24
src/components/matters/live-matter-core-fields-view.tsx+2 −20
src/components/matters/live-matter-detail-page.tsx+1 −8
src/components/matters/live-matter-fields.stories.tsx+0 −13
src/components/matters/live-matter-fields.tsx+0 −4
src/components/matters/live-matter-frame-fields.stories.tsx+0 −2
src/components/matters/live-matter-operating-model.stories.tsx+2 −16
src/components/matters/live-matter-sheet.tsx+0 −11
src/components/matters/live-matter-summary.tsx+1 −7
src/components/matters/live-matter-template-select-field.tsx+0 −2
src/components/matters/live-matters-list-page.tsx+1 −14
src/components/matters/live-types.ts+0 −2
src/components/matters/proceeding-create-form.tsx+5 −1
src/components/matters/proceeding-stage-timeline.tsx+1 −1
src/components/settings/matter-types/matter-template-setup-guide.tsx+5 −34
src/components/settings/matter-types/matter-type-clone-sheet.tsx+0 −87
src/components/settings/matter-types/matter-type-detail-actions.tsx+2 −25
src/components/settings/matter-types/matter-type-detail-cards.tsx+1 −1
src/components/settings/matter-types/matter-type-detail-content.tsx+1 −4
src/components/settings/matter-types/matter-type-detail-header.tsx+1 −8
src/components/settings/matter-types/matter-type-overview.tsx+6 −26
src/components/settings/matter-types/matter-type-sheet-header.tsx+1 −32
src/components/settings/matter-types/matter-type-sheet-parts.tsx+0 −37
src/components/settings/matter-types/matter-type-source-pill.tsx+0 −28
src/components/settings/matter-types/matter-types-empty-state.tsx+3 −14
src/components/settings/matter-types/matter-types-list-content.tsx+8 −46
src/components/settings/matter-types/matter-types-list-parts.tsx+1 −36
src/components/settings/matter-types/matter-types-list-row.tsx+5 −65
src/components/settings/matter-types/matter-types-list-table.tsx+1 −14
src/components/settings/matter-types/matter-types-page.stories.tsx+1 −11
src/components/settings/matter-types/matter-types-story-drawers.tsx+9 −36
src/components/settings/matter-types/matter-types-story-surface.tsx+2 −30
src/components/settings/matter-types/matter-types-story-types.ts+1 −6
src/components/settings/matter-types/presentation.ts+14 −84
src/components/settings/matter-types/proceedings-story-content.tsx+1 −7
src/components/settings/matter-types/proceedings-story-header.tsx+0 −6
src/components/settings/matter-types/proceedings-story-surface.tsx+0 −1
src/components/settings/matter-types/story-fixtures.ts+36 −84
src/gen/client/appArchiveMatterTemplate.ts+65
src/gen/client/appAssignMatterProceedingParticipantRole.ts+84
src/gen/client/appCreateMatterFilingType.ts+76
src/gen/client/appCreateMatterParticipantLabel.ts+76
src/gen/client/appCreateMatterProceedingFiling.ts+79
src/gen/client/appCreateMatterProceedingType.ts+76
src/gen/client/appCreateMatterTemplate.ts+68
src/gen/client/appDeleteMatterTemplate.ts+65
src/gen/client/appGetMatterType.ts+0 −63
src/gen/client/appListMatterProceedingFilings.ts+68
src/gen/client/appListMatterProceedingParticipantRoles.ts+70
src/gen/client/appListMatterTypeProceedingKinds.ts+0 −66
src/gen/client/appListMatterTypes.ts+0 −57
src/gen/client/appUnarchiveMatterTemplate.ts+65
src/gen/client/appUpdateMatterFilingType.ts+81
src/gen/client/appUpdateMatterParticipantLabel.ts+81
src/gen/client/appUpdateMatterProceedingType.ts+81
src/gen/client/appUpdateMatterTemplate.ts+75
src/gen/client/index.ts+15 −3
src/gen/hooks/index.ts+68 −24
src/gen/hooks/useAppArchiveMatterTemplate.ts+152
src/gen/hooks/useAppAssignMatterProceedingParticipantRole.ts ★+186
src/gen/hooks/useAppCreateMatterFilingType.ts+162
src/gen/hooks/useAppCreateMatterParticipantLabel.ts+164
src/gen/hooks/useAppCreateMatterProceedingFiling.ts+171
src/gen/hooks/useAppCreateMatterProceedingType.ts+164
src/gen/hooks/useAppCreateMatterTemplate.ts+156
src/gen/hooks/useAppDeleteMatterTemplate.ts+152
src/gen/hooks/useAppGetMatterType.ts+0 −130
src/gen/hooks/useAppGetMatterTypeSuspense.ts+0 −129
src/gen/hooks/useAppListMatterProceedingFilings.ts+150
src/gen/hooks/useAppListMatterProceedingFilingsSuspense.ts+148
src/gen/hooks/useAppListMatterProceedingParticipantRoles.ts+156
src/gen/hooks/useAppListMatterProceedingParticipantRolesSuspense.ts+157
src/gen/hooks/useAppListMatterTypeProceedingKinds.ts+0 −152
src/gen/hooks/useAppListMatterTypeProceedingKindsSuspense.ts+0 −150
src/gen/hooks/useAppListMatterTypes.ts+0 −119
src/gen/hooks/useAppListMatterTypesSuspense.ts+0 −117
src/gen/hooks/useAppUnarchiveMatterTemplate.ts+152
src/gen/hooks/useAppUpdateMatterFilingType.ts+175
src/gen/hooks/useAppUpdateMatterParticipantLabel.ts+184
src/gen/hooks/useAppUpdateMatterProceedingType.ts+184
src/gen/hooks/useAppUpdateMatterTemplate.ts+162
src/gen/index.ts ★+503 −148
src/gen/schemas/filingCreateRequest.json+38
src/gen/schemas/filingListResponse.json+100
src/gen/schemas/filingStatus.json+7
src/gen/schemas/filingView.json+84
src/gen/schemas/matterCreateRequest.json+15 −12
src/gen/schemas/matterDetailView.json+14 −9
src/gen/schemas/matterFilingTypeCreateRequest.json+31
src/gen/schemas/matterFilingTypeUpdateRequest.json+39
src/gen/schemas/matterListItem.json+14 −9
src/gen/schemas/matterListResponse.json+17 −12
src/gen/schemas/matterParticipantLabelAlign.json+0 −7
src/gen/schemas/matterParticipantLabelCreateRequest.json+31
src/gen/schemas/matterParticipantLabelUpdateRequest.json+39
src/gen/schemas/matterParticipantLabelView.json+19 −31