Matt
375aeb08af
feat(finalist): unenroll reverses round membership + confirmation
...
Adds finalist.unenroll(projectId, roundId) which deletes the
FinalistConfirmation (cascading AttendingMember/FlightDetail/
VisaApplication/MemberLunchPick) and the LIVE_FINAL ProjectRoundState,
then logs a FINALIST_UNENROLL audit entry. Safe no-op when no rows exist.
Tests cover ADMIN_CONFIRM enrolled teardown and the no-rows path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 15:23:50 +02:00
..
2026-04-21 17:00:03 +02:00
2026-02-15 23:04:15 +01:00
2026-04-06 16:34:44 -04:00
2026-04-28 16:05:16 +02:00
2026-04-28 16:00:56 +02:00
2026-04-28 19:03:01 +02:00
2026-04-28 18:00:47 +02:00
2026-04-28 18:50:52 +02:00
2026-06-04 15:20:51 +02:00
2026-04-28 17:52:22 +02:00
2026-04-28 17:50:17 +02:00
2026-04-28 18:37:34 +02:00
2026-06-04 15:23:50 +02:00
2026-04-27 13:15:47 +02:00
2026-04-28 13:08:21 +02:00
2026-04-28 18:20:40 +02:00
2026-04-28 18:19:39 +02:00
2026-04-28 18:18:16 +02:00
2026-04-29 02:39:51 +02:00
2026-06-04 15:15:14 +02:00
2026-04-29 02:28:51 +02:00
2026-04-29 02:38:00 +02:00
2026-04-29 02:50:15 +02:00
2026-04-29 02:37:17 +02:00
2026-06-01 18:51:11 +02:00
2026-04-28 16:47:53 +02:00
2026-05-22 16:37:37 +02:00
2026-04-28 18:44:45 +02:00
2026-05-27 13:12:41 +02:00
2026-04-28 13:33:18 +02:00
2026-06-01 19:34:40 +02:00
2026-05-22 16:37:37 +02:00
2026-05-22 16:53:07 +02:00
2026-06-01 16:28:32 +02:00
2026-05-22 16:53:07 +02:00
2026-06-01 16:40:38 +02:00
2026-04-28 14:29:42 +02:00
2026-05-26 15:20:01 +02:00
2026-04-28 19:59:31 +02:00
2026-04-27 13:19:15 +02:00
2026-06-01 20:06:52 +02:00
2026-04-28 19:37:55 +02:00
2026-04-28 19:31:28 +02:00
2026-04-28 19:33:40 +02:00
2026-04-28 16:14:11 +02:00