Changeset 0.22.8 (#150)
This commit is contained in:
41
server/database/migrations/011_notifications.sql
Normal file
41
server/database/migrations/011_notifications.sql
Normal file
@@ -0,0 +1,41 @@
|
||||
-- ==========================================
|
||||
-- Chat Switchboard — 011 Notifications
|
||||
-- ==========================================
|
||||
-- Notification delivery and per-user preferences.
|
||||
-- ICD §12 (Notifications)
|
||||
-- ==========================================
|
||||
|
||||
-- =========================================
|
||||
-- NOTIFICATIONS
|
||||
-- =========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS notifications (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
type VARCHAR(50) NOT NULL,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
body TEXT DEFAULT '',
|
||||
resource_type VARCHAR(50),
|
||||
resource_id UUID,
|
||||
is_read BOOLEAN DEFAULT false,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_notifications_user_unread ON notifications(user_id, is_read, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_notifications_user_created ON notifications(user_id, created_at DESC);
|
||||
|
||||
|
||||
-- =========================================
|
||||
-- NOTIFICATION PREFERENCES
|
||||
-- =========================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS notification_preferences (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
type VARCHAR(50) NOT NULL,
|
||||
in_app BOOLEAN NOT NULL DEFAULT true,
|
||||
email BOOLEAN NOT NULL DEFAULT false,
|
||||
UNIQUE(user_id, type)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_notification_prefs_user ON notification_preferences(user_id);
|
||||
Reference in New Issue
Block a user