-- ====================================================================
-- 0054_booking_ical — Buchung per iCal-Einladung (selbsthoster-tauglich)
-- ====================================================================
-- Macht die Kalenderbuchung zum Default OHNE externe Einrichtung: MA legt
-- Verfügbarkeit fest, Gast bucht echte Slots, beide bekommen eine .ics-
-- Termineinladung per SMTP. Frei/Belegt kommt aus der eigenen bookings-
-- Tabelle, NICHT aus einem Postfach. Die Microsoft-Graph-Anbindung
-- (0053) bleibt als optionaler Modus 'microsoft' liegen. Siehe
-- docs/booking-modul.md.

-- Modus pro MA: 'ical' (Default, kein Setup) oder 'microsoft' (Graph).
alter table public.calendar_connections
  add column if not exists mode text not null default 'ical';

-- mailbox_upn wird nur im 'microsoft'-Modus gebraucht → optional machen.
alter table public.calendar_connections
  alter column mailbox_upn drop not null;

comment on column public.calendar_connections.mode is
  '''ical'' = Buchung per .ics-Einladung (kein externes Setup); ''microsoft'' = Microsoft-Graph (optional).';
