- Shipped
- August 7, 2026 at 6:33 AM UTC
- Author
- kamo
- Commit
- d4da35d
/api/webinar/* is a passthrough, so every TS field name that drifted from the Java DTO silently read as undefined instead of failing to compile. The settings tab was full of them: - Slots column rendered reminderCount (which the backend never sends); it now shows slotCount, and reminders get their own column - presenterCount/reminderCount do not exist — the type embeds presenters[] and reminders[], so count from those - availableToChildren is isAvailableToChildren, so the "Child visible" chip never appeared AND opening a type reset the switch to off, turning the flag off on the next save - slot.date is slot.slotDate, so slot dates rendered blank and creating a slot posted a null date - presenter memberId/memberName are teamMemberId/teamMemberName, so the presenter table showed blank names and adding one posted a null member - restriction slotId is availabilitySlotId, so restriction rows could not find their slot and deleting one built a /slots/undefined/ URL Presenters and reminders now come from the type payload rather than two GETs that were never mapped, and restrictions come from each slot's embedded childOrgRestrictions. Drops the Status columns on both tables: the queries filter to active rows, so the column could only ever say "Active". Strategy labels were hardcoded English and now reuse the dropdown's keys.