CI / changes (pull_request) Successful in 15s
CI / lint (pull_request) Successful in 57s
CI / frontend (pull_request) Successful in 2m36s
CI / storybook-a11y (pull_request) Failing after 3m14s
CI / backend (pull_request) Successful in 2m1s
CI / semgrep (pull_request) Successful in 1m10s
CI / e2e (pull_request) Successful in 3m3s
CI / api-client-drift (pull_request) Successful in 2m1s
New GET /werkvoorraad endpoint lists aanvragen still open (Ingediend/InBehandeling), gated by the medewerker capability (CanBeoordelen) rather than the admin role — reuses the existing ApplicationSummaryDto, no new DTO. GET /me now surfaces aanvraag:beoordelen for a behandelaar so the FE can gate with the same AccessStore/capabilityGuard idiom every other page uses. FE: a behandeling domain type deliberately narrower than ssp's full AanvraagStatus union (only the two open tags — illegal states unrepresentable), composed into a werkvoorraad-list organism from existing shared/ui molecules. Replaces WP-61's scaffold placeholder as the app's real landing page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
966 B
TypeScript
24 lines
966 B
TypeScript
/**
|
|
* A queue entry as the behandelportal sees it (WP-64) — the parsed, domain-side view
|
|
* of the backend's cross-owner `GET /werkvoorraad`. Pure types, no Angular.
|
|
*
|
|
* The status union is narrower than the SSP's full `AanvraagStatus` (ssp's
|
|
* `registratie/domain/aanvraag.ts`): the backend only ever puts a case in the queue
|
|
* while it is still open (`Ingediend`/`InBehandeling`), so a queue item literally
|
|
* cannot be `Concept`/`Goedgekeurd`/`Afgewezen` — illegal states unrepresentable.
|
|
*/
|
|
export type AanvraagType = 'registratie' | 'herregistratie' | 'intake';
|
|
|
|
export type WerkvoorraadStatus =
|
|
| { tag: 'Ingediend'; referentie: string }
|
|
| { tag: 'InBehandeling'; referentie: string; manual: boolean };
|
|
|
|
export interface WerkvoorraadItem {
|
|
id: string;
|
|
type: AanvraagType;
|
|
status: WerkvoorraadStatus;
|
|
/** The BSN of the citizen the aanvraag belongs to — always populated (cross-owner list). */
|
|
owner: string;
|
|
submittedAt?: string;
|
|
}
|