docs(backlog): record EVENT-START-END-TIME for events-table schema upgrade

Surfaced during Session 2 review: events.start_date/end_date (date type)
forces day-boundary semantics in WithinEventBounds. Adding start_time/
end_time would let the Session 4 timetable viewport honour real event
hours and boundary checks reject post-event-close performances.

Cross-cutting schema change — out of scope for Artist Timetable sprint
per Charter §2. Tracked for opportunistic landing alongside a future
events-module sprint OR concrete UX-gap discovery during Session 4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 21:30:18 +02:00
parent bc7d3fcbee
commit 70431fb836

View File

@@ -736,6 +736,43 @@ de divergentie totdat een legitieme amendement langskomt.
---
### EVENT-START-END-TIME
`events` table currently has `start_date`/`end_date` (date type), which
forces day-boundary semantics in `WithinEventBounds` and similar checks.
For festivals running past midnight or with intentionally non-24h
operating windows, a `start_time`/`end_time` pair (or a unified
`start_at`/`end_at` datetime) on the `events` table would let:
- the timetable viewport (Session 4 frontend) honour real event hours
instead of always showing 00:00 → 23:59
- boundary checks like `WithinEventBounds` reject performances that
run past the event's actual close time, even within the same date
**Why not now:**
- Cross-cutting schema change touching the `events` table — used by
30+ modules across the codebase
- Out of scope for the Artist Timetable sprint per Charter §2 (no
opportunistic feature-creep)
- Sub-events absorb the granularity in 90% of cases via Performance
datetimes
**When:**
- Session 4 frontend timetable viewport reveals concrete UX gaps from
date-only event bounds
- OR a customer onboards with a non-day-aligned schedule (e.g. a club
with a 22:00 → 06:00 nightly window)
**Surfaced during:** Session 2 review of
`app/Rules/Artist/WithinEventBounds.php`, which uses
`startOfDay()`/`endOfDay()` to bridge the date-vs-datetime gap. That
bridge is correct given current schema; this ticket is about the
schema, not the rule.
**Prioriteit:** Middel — works today; upgrade is feature-not-bug.
---
### AUTH-PERMISSIONS-MIGRATION — Migrate alle policies van hasRole() naar hasPermissionTo()
**Aanleiding:** Crewli gebruikt vandaag uitsluitend Spatie *roles*; geen