22 lines
1.0 KiB
SQL
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 '';
|