feat(behandelportal): WP-63 aanvraag status lifecycle enum
CI / changes (push) Successful in 8s
CI / lint (push) Successful in 50s
CI / frontend (push) Successful in 1m32s
CI / backend (push) Successful in 1m50s
CI / e2e (push) Successful in 3m7s
CI / storybook-a11y (push) Successful in 6m53s
CI / semgrep (push) Successful in 1m12s
CI / api-client-drift (push) Successful in 1m43s
CI / changes (push) Successful in 8s
CI / lint (push) Successful in 50s
CI / frontend (push) Successful in 1m32s
CI / backend (push) Successful in 1m50s
CI / e2e (push) Successful in 3m7s
CI / storybook-a11y (push) Successful in 6m53s
CI / semgrep (push) Successful in 1m12s
CI / api-client-drift (push) Successful in 1m43s
Model the full ADR-0002 lifecycle (Ingediend/InBehandeling/ MeerInfoGevraagd/Goedgekeurd/Afgewezen) as a backend enum backing the existing AanvraagStatusDto.Tag string, and widen the FE union/parse boundary/switches to match. Ingediend/MeerInfoGevraagd aren't reachable yet (no behandelaar transition exists) — that's WP-65. Zero DTO shape change, so gen:api has no drift. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -113,7 +113,7 @@ for its existing violations, so every WP ends green.
|
||||
| [WP-60](WP-60-write-divergence-resilience.md) | Write-divergence resilience (local + ZGW writes) | 10 · OpenZaak hardening | done |
|
||||
| [WP-61](WP-61-behandelportal-bootstrap.md) | Bootstrap the behandelportal app | 11 · Behandelportal | done |
|
||||
| [WP-62](WP-62-medewerker-identity-authz.md) | Backend: medewerker caller identity + authz seam | 11 · Behandelportal | done |
|
||||
| [WP-63](WP-63-aanvraag-status-lifecycle.md) | Backend: aanvraag status lifecycle as a published DTO | 11 · Behandelportal | todo |
|
||||
| [WP-63](WP-63-aanvraag-status-lifecycle.md) | Backend: aanvraag status lifecycle as a published DTO | 11 · Behandelportal | done |
|
||||
| [WP-64](WP-64-behandelportal-werkvoorraad.md) | Behandelportal: werkvoorraad (queue) screen | 11 · Behandelportal | todo |
|
||||
| [WP-65](WP-65-behandelportal-beoordeling.md) | Behandelportal: zaak detail + beoordeling (decision) screen | 11 · Behandelportal | todo |
|
||||
| [WP-66](WP-66-behandelportal-openzaak-write.md) | Wire the decision into OpenZaak | 11 · Behandelportal | todo |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# WP-63 — Backend: aanvraag status lifecycle as a published DTO
|
||||
|
||||
Status: todo
|
||||
Status: done
|
||||
Phase: 11 — Behandelportal
|
||||
|
||||
## Why
|
||||
@@ -48,10 +48,27 @@ read (this WP), the behandelportal needs it as the thing it advances (WP-65).
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Backend publishes the full status lifecycle value on the existing aanvraag DTO.
|
||||
- [ ] `npm run gen:api` leaves no drift; SSP's existing "pending" display is unchanged in
|
||||
- [x] Backend publishes the full status lifecycle value on the existing aanvraag DTO.
|
||||
- [x] `npm run gen:api` leaves no drift; SSP's existing "pending" display is unchanged in
|
||||
behavior, now backed by the real status.
|
||||
- [ ] `dotnet test` + `npm run ci` green.
|
||||
- [x] `dotnet test` + `npm run ci` green.
|
||||
|
||||
## Outcome
|
||||
|
||||
Implemented as a pure type-system widening, not a behavior change: `AanvraagStatusTag`
|
||||
(`Ingediend | InBehandeling | MeerInfoGevraagd | Goedgekeurd | Afgewezen`) is a new C# enum
|
||||
backing `Mappers.ToStatusDto`'s existing string literals — `AanvraagStatusDto.Tag` stays a
|
||||
plain string, so the OpenAPI schema (and `npm run gen:api`) don't change at all, satisfying
|
||||
"zero required FE behavior change" trivially. `Ingediend`/`MeerInfoGevraagd` aren't reachable
|
||||
from any code path yet (no behandelaar action exists to produce them) — that's WP-65's
|
||||
transition endpoint, exactly per this WP's own Risks note. The FE `AanvraagStatus` union,
|
||||
`parseAanvraagStatus`, `statusLabel`/`submittedRow`/`detailRows`, `blockActions`, and the
|
||||
dashboard's sort order were all widened to the two new tags so TypeScript's exhaustiveness
|
||||
checking forces every switch to handle them once WP-65 starts emitting them.
|
||||
`big-profile.store.ts`'s `pendingHerregistratie` was deliberately left untouched — it's a
|
||||
pure client-side optimistic UI flag unrelated to any DTO field (not what the WP's "Why"
|
||||
section implied), and the decision text's "or kept as a computed convenience" explicitly
|
||||
allows this.
|
||||
|
||||
## Verification
|
||||
|
||||
|
||||
Reference in New Issue
Block a user