Files
creator-hub/internal/environment/migrations/1051_private_messages.sql
T

22 lines
1.0 KiB
SQL

CREATE TABLE creator_private_message (
id TEXT PRIMARY KEY,
account_id BIGINT NOT NULL REFERENCES social_account(id) ON DELETE CASCADE,
peer_uid TEXT NOT NULL,
peer_name TEXT NOT NULL DEFAULT '',
server_id TEXT,
request_id TEXT,
direction TEXT NOT NULL CHECK (direction IN ('inbound', 'outbound')),
message_type TEXT NOT NULL CHECK (message_type IN ('text', 'image', 'audio', 'video', 'sticker', 'unknown')),
text TEXT NOT NULL DEFAULT '',
state TEXT NOT NULL CHECK (state IN ('sending', 'succeeded', 'failed', 'unknown')),
error TEXT NOT NULL DEFAULT '',
message_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (account_id, server_id),
UNIQUE (account_id, request_id)
);
CREATE INDEX creator_private_message_conversation_idx ON creator_private_message(account_id, peer_uid, created_at DESC, id DESC);
ALTER TABLE creator_account_listener ADD COLUMN dm_synced_at TIMESTAMPTZ;
ALTER TABLE creator_account_listener ADD COLUMN dm_sync_error TEXT NOT NULL DEFAULT '';