gitdataai/lib/migrate/sql/room/dm_conversation_up_01.sql
2026-05-30 01:38:40 +08:00

18 lines
741 B
SQL

-- depends_on: room
CREATE TABLE IF NOT EXISTS dm_conversation (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
room UUID NOT NULL REFERENCES room(id) ON DELETE CASCADE,
initiator UUID NOT NULL,
recipient UUID NOT NULL,
is_closed BOOLEAN NOT NULL DEFAULT FALSE,
closed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (initiator, recipient),
CHECK (initiator < recipient)
);
CREATE INDEX IF NOT EXISTS idx_dm_conversation_room ON dm_conversation (room);
CREATE INDEX IF NOT EXISTS idx_dm_conversation_initiator ON dm_conversation (initiator);
CREATE INDEX IF NOT EXISTS idx_dm_conversation_recipient ON dm_conversation (recipient);