21 lines
812 B
MySQL
21 lines
812 B
MySQL
|
|
-- 087_queue_sessions.sql
|
||
|
|
-- v0.203 Lot D1: Collaborative queue sessions
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS queue_sessions (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
share_token VARCHAR(32) UNIQUE NOT NULL,
|
||
|
|
creator_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS shared_queue_items (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
session_id UUID NOT NULL REFERENCES queue_sessions(id) ON DELETE CASCADE,
|
||
|
|
track_id UUID NOT NULL REFERENCES tracks(id),
|
||
|
|
position INT NOT NULL,
|
||
|
|
added_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_queue_sessions_token ON queue_sessions(share_token);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_shared_queue_items_session ON shared_queue_items(session_id, position);
|