18 lines
741 B
SQL
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);
|