From a777c8335f34d105a5172d189f505e09a96d020d Mon Sep 17 00:00:00 2001 From: "bert.hausmans" Date: Fri, 24 Apr 2026 10:32:40 +0200 Subject: [PATCH] docs(backlog): log TECH-08 for paginated response meta in organizer composables Documents the technical debt introduced when the organizer API composables (useSections, useFormSchemas) adopted a minimal PaginatedResponse shape that discards Laravel's links and meta blocks. PR-b2 will surface the first UI consumer that needs pagination controls. Co-Authored-By: Claude Opus 4.7 (1M context) --- dev-docs/BACKLOG.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dev-docs/BACKLOG.md b/dev-docs/BACKLOG.md index 037bda84..5010f6bf 100644 --- a/dev-docs/BACKLOG.md +++ b/dev-docs/BACKLOG.md @@ -489,6 +489,33 @@ apps/portal om drift te voorkomen. --- +### TECH-08 — Paginated response meta wordt weggegooid in organizer composables + +**Aanleiding:** `apps/app/src/composables/api/useSections.ts` en +`apps/app/src/composables/api/useFormSchemas.ts` definiëren beiden een +lokale `PaginatedResponse = { data: T[] }` shape die alleen de +`data` array eruit trekt. De Laravel paginator geeft ook `links` en +`meta` (huidige pagina, totaal, per-page) terug — die informatie gaat +nu verloren. Voor de huidige consumers geen probleem (geen paginatie- +controls), maar zodra een lijstweergave in de organizer UI een +"Volgende"-knop, pagina-selector of totaaltelling wil tonen, loopt de +composable tegen die beperking aan. PR-b2 (/forms lijst-view) is de +eerste concrete trigger. +**Wat:** Upgrade de shared response-shape in beide composables naar +`{ data: T[], links: { first, last, prev, next }, meta: { current_page, from, last_page, path, per_page, to, total } }` (exacte veldnamen +conform Laravel's `ResourceCollection` default). Retourneer het hele +meta-blok mee uit de `useXList` composables zodat de UI kan paginate. +Bij voorkeur één gedeelde TypeScript interface exporteren uit een +nieuwe `apps/app/src/types/api.ts` zodat de derde, vierde, ... +composable die volgt hetzelfde patroon erft. Nieuwe composables voor +lijst-endpoints moeten vanaf dat moment deze interface gebruiken. +**Prioriteit:** Middel — blokkeert geen huidige features, maar elke +composable die zonder paginering-support wordt gebouwd voegt werk toe +aan de latere migratie. Oplossen vlak vóór PR-b2 paginering-UI +introduceert is het natuurlijke moment. + +--- + ### ~~TECH-02 — scopeForFestival helper op Event model~~ ✅ OPGELOST ---