-- ====================================================================
-- 0041_phone_integration — Anbindung Telefonanlagen (3CX & generisch)
-- ====================================================================
-- Generisches Provider-Pattern: pro Mandant ein Telefon-Provider
-- (aktuell 3CX im Fokus, weitere Adapter via lib/phone/providers/*.ts
-- nachruestbar). Tokens und Geheimnisse liegen in site_settings;
-- Endpunkte sind uniform unter /api/phone/*.
--
-- Phase 1 nutzt phone_lookup_token (Bearer fuer Inbound-Lookup).
-- Phase 2 nutzt phone_webhook_secret (HMAC fuer Call-Event-POSTs).
-- Phase 3+4 (Click-to-Call / Presence) brauchen phone_api_url +
-- phone_api_token, die wir gleich mitanlegen.
--
-- employees.phone_extension mapping zur Anlage (z.B. "333" als
-- 3CX-Extension fuer felix.zoesch). Erforderlich fuer Click-to-Call
-- und Presence-Lookup.
-- --------------------------------------------------------------------

alter table public.site_settings
  add column if not exists phone_provider text,
  add column if not exists phone_api_url text,
  add column if not exists phone_api_token text,
  add column if not exists phone_lookup_token text,
  add column if not exists phone_webhook_secret text;

alter table public.employees
  add column if not exists phone_extension text;

comment on column public.site_settings.phone_provider is
  'Telefonanlagen-Adapter: ''3cx'' | ''sipgate'' | ''asterisk'' | ''placetel'' | null. Bestimmt Format der Lookup-Antwort + Webhook-Erwartung.';
comment on column public.site_settings.phone_api_url is
  'Base-URL der Anlagen-API (z.B. https://stwhas.3cx.eu/xapi/v1). Fuer Click-to-Call + Presence-Polling.';
comment on column public.site_settings.phone_api_token is
  'Token fuer ausgehende Calls an die Anlagen-API. Nur Service-Role-lesbar.';
comment on column public.site_settings.phone_lookup_token is
  'Bearer-Token, das die Anlage beim GET /api/phone/lookup mitschicken muss. Frei generierbar im Admin.';
comment on column public.site_settings.phone_webhook_secret is
  'HMAC-Secret zur Validierung eingehender Call-Event-Webhooks (POST /api/phone/call-event). Frei generierbar im Admin.';
comment on column public.employees.phone_extension is
  'Telefon-Extension dieser Mitarbeiterin/dieses Mitarbeiters in der Anlage (z.B. "333"). Optional — nur fuer Click-to-Call + Presence relevant.';
