-- VoIP-PushKit-Token pro User-Device.
--
-- Apple's PushKit liefert separat von APNs einen device-token (64-char hex)
-- der NUR für CallKit-Wake-from-killed-State-Pushes via VoIP-Services-Cert
-- (`.p12`) genutzt wird. Der Token rotiert unabhängig vom regulären APNs-Token.
--
-- Storage-Strategie: Single optional column auf push_tokens.
--   - Selbe Row wie der reguläre Expo-Token (Device = Row).
--   - voip_token = NULL → kein VoIP-Push (Android, Web, alte iOS-Builds).
--   - voip_token gesetzt → backend/server/services/voip-push.ts sendVoIPPush() feuert
--     bei eingehendem Call zusätzlich zur regulären Push.
--
-- DSGVO: kaskadiert via existing FK → keine zusätzliche Logik nötig.

ALTER TABLE "rebreak"."push_tokens"
    ADD COLUMN IF NOT EXISTS "voip_token" TEXT;

-- Index für sendCallRingPush-Lookup ("alle Tokens des Users die VoIP-fähig sind").
CREATE INDEX IF NOT EXISTS "push_tokens_voip_token_idx"
    ON "rebreak"."push_tokens"("user_id") WHERE "voip_token" IS NOT NULL;
