- Shipped
- August 25, 2026 at 8:22 PM UTC
- Author
- Kamo
- Commit
- 1965f38
Creates member_availability_window, adds **************** and rebuilds webinar_child_org_restriction around the type plus an optional weekday. Drops webinar_availability_slot. The old rows are DROPPED rather than migrated, deliberately. A dated slot on a type does not carry the one fact the new table needs — which presenter it belonged to. A type with three presenters could have meant any of them, all of them, or a rota, and every way of guessing is wrong in a way nobody would notice: fan the row out to all three and the platform starts offering visitors times two of them never agreed to. Members re-declare their hours once instead. Restrictions are dropped before slots: the old restriction table holds a foreign key into the slot table, so the other order fails on the constraint. Enum columns are VARCHAR holding the enum NAME, never an ordinal — Hibernate freezes CHECK (col BETWEEN 0 AND N) at create time and never widens it, and removing a value from the middle silently relabels every row below it. Apply this BEFORE MediaService ships the entities that map these tables. KamoInitializerService has no CI, so that ordering is a deploy step.