Files
silo-server/migrations/071_watch_together_suggestions.up.sql
T

26 lines
1.3 KiB
SQL

CREATE TABLE watch_together_suggestions (
id TEXT PRIMARY KEY,
room_id TEXT NOT NULL REFERENCES watch_together_rooms(id) ON DELETE CASCADE,
suggester_user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
suggester_profile_id TEXT NOT NULL,
content_id TEXT NOT NULL,
content_type TEXT NOT NULL,
title TEXT NOT NULL,
subtitle TEXT NOT NULL DEFAULT '',
poster_url TEXT NOT NULL DEFAULT '',
note TEXT NOT NULL DEFAULT '',
vote_count INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT wt_suggestion_content_type_check CHECK (content_type IN ('movie', 'episode'))
);
CREATE TABLE watch_together_votes (
suggestion_id TEXT NOT NULL REFERENCES watch_together_suggestions(id) ON DELETE CASCADE,
voter_profile_id TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (suggestion_id, voter_profile_id)
);
CREATE INDEX idx_wt_suggestions_room ON watch_together_suggestions(room_id, vote_count DESC, created_at);
CREATE INDEX idx_wt_votes_suggestion ON watch_together_votes(suggestion_id);