- Neue Tabelle PushToken (ein Eintrag pro Gerät, Token eindeutig, max. 10 pro Konto); owner.registerPushToken trägt zusätzlich ein statt zu überschreiben, optional mit Plattform (alte App-Versionen funktionieren) - Versand an alle Geräte in einem Expo-Batch; Tokens mit „DeviceNotRegistered“ werden gelöscht; Owner.expoPushToken wird bis zur Übernahme nur noch mitgelesen (Übernahme per enable_rls_push_tokens.sql) - App: meldet Plattform mit und trägt das Gerät beim Abmelden aus (clearPushToken mit Token), damit kein Push mehr fürs alte Konto kommt - Vermisst: Telefon/E-Mail werden beim Finden bzw. Schließen gelöscht (Datensparsamkeit); Altbestand per cleanup_lost_report_contacts.sql Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
712 B
SQL
13 lines
712 B
SQL
-- Push an mehrere Geräte: neue Tabelle für den PostgREST-Zugriff sperren, wie
|
|
-- alle anderen Tabellen (siehe enable_rls.sql). Die App greift ausschließlich
|
|
-- über Prisma (Service-Rolle) zu. Nach dem prisma db push einmal ausführen.
|
|
ALTER TABLE public."PushToken" ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Bestehende Einzel-Tokens übernehmen, damit vorhandene Geräte nahtlos weiter
|
|
-- Push bekommen (Owner.expoPushToken wird ab jetzt nicht mehr geschrieben).
|
|
INSERT INTO public."PushToken" ("id", "ownerId", "token", "platform", "createdAt", "lastSeenAt")
|
|
SELECT 'mig_' || md5("id"), "id", "expoPushToken", NULL, now(), now()
|
|
FROM public."Owner"
|
|
WHERE "expoPushToken" IS NOT NULL
|
|
ON CONFLICT ("token") DO NOTHING;
|