T-A — Master data & catalogue: domain services, routers and pages P05–P08, P11 #16

Open
opened 2026-09-11 09:02:11 +00:00 by bart · 0 comments
Collaborator

Parent

Row T-A in docs/12-implementation-plan.md (branch, owned paths and doc section are defined there).

What to build

A planner manages vehicles, sites, catalogue values, crews (with templates), people, shifts and jobs end to end: domain services enforce the rules, routers replace their 501 stubs, and pages P05 (form/table), P06 (list/detail minus heatmap), P07, P08 incl. templates and P11 are usable. Jobs follow open ↔ on_hold → cancelled with an audit row per transition.

Acceptance criteria

  • Each aggregate's router serves list/get/create/update/soft-delete through its domain service; integration tests per aggregate
  • Exhaustive job transition table test: every allowed and forbidden transition of open ↔ on_hold → cancelled
  • Pages P05, P06 (minus heatmap), P07, P08 with templates and P11 work against the live API; each has nl/en scope files with parity
  • Every mutation records a reason and an audit row; nothing is hard-deleted
  • Feature store is composed from slice files; no feature-to-feature imports

Blocked by

  • #15 — API surface: every DTO and endpoint from docs/09-api.md stubbed, openapi.json committed
  • #14 — Seed: sample FleetPulse feed, catalogue, three crews, week of shifts, dev persons
  • #13 — Web shared UI: Optimus wrappers, pipes, view-model types, generic admin CRUD, store slice pattern
## Parent Row **T-A** in `docs/12-implementation-plan.md` (branch, owned paths and doc section are defined there). ## What to build A planner manages vehicles, sites, catalogue values, crews (with templates), people, shifts and jobs end to end: domain services enforce the rules, routers replace their `501` stubs, and pages P05 (form/table), P06 (list/detail minus heatmap), P07, P08 incl. templates and P11 are usable. Jobs follow `open ↔ on_hold → cancelled` with an audit row per transition. ## Acceptance criteria - [ ] Each aggregate's router serves list/get/create/update/soft-delete through its domain service; integration tests per aggregate - [ ] Exhaustive job transition table test: every allowed and forbidden transition of `open ↔ on_hold → cancelled` - [ ] Pages P05, P06 (minus heatmap), P07, P08 with templates and P11 work against the live API; each has `nl`/`en` scope files with parity - [ ] Every mutation records a reason and an audit row; nothing is hard-deleted - [ ] Feature store is composed from slice files; no feature-to-feature imports ## Blocked by - #15 — API surface: every DTO and endpoint from docs/09-api.md stubbed, openapi.json committed - #14 — Seed: sample FleetPulse feed, catalogue, three crews, week of shifts, dev persons - #13 — Web shared UI: Optimus wrappers, pipes, view-model types, generic admin CRUD, store slice pattern
Sign in to join this conversation.
No labels
ready-for-agent
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
patrick/Polaris#16
No description provided.