31 lines
1.4 KiB
SQL
31 lines
1.4 KiB
SQL
-- Streaming to platforms, recordings and on-site playback.
|
|
ALTER TABLE broadcast_channel ADD COLUMN IF NOT EXISTS format text NOT NULL DEFAULT 'landscape';
|
|
ALTER TABLE broadcast_channel ADD COLUMN IF NOT EXISTS quality text NOT NULL DEFAULT '1080p30';
|
|
ALTER TABLE broadcast_channel ADD COLUMN IF NOT EXISTS live boolean NOT NULL DEFAULT false;
|
|
ALTER TABLE broadcast_channel ADD COLUMN IF NOT EXISTS record boolean NOT NULL DEFAULT true;
|
|
|
|
CREATE TABLE IF NOT EXISTS broadcast_destination (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
channel_id uuid NOT NULL REFERENCES broadcast_channel(id) ON DELETE CASCADE,
|
|
platform text NOT NULL,
|
|
label text NOT NULL,
|
|
ingest_url text NOT NULL,
|
|
stream_key text NOT NULL,
|
|
enabled boolean NOT NULL DEFAULT true,
|
|
created_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_broadcast_destination_channel ON broadcast_destination (channel_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS broadcast_session (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
channel_id uuid NOT NULL REFERENCES broadcast_channel(id) ON DELETE CASCADE,
|
|
started_at timestamptz NOT NULL DEFAULT now(),
|
|
ended_at timestamptz,
|
|
seen_at timestamptz NOT NULL DEFAULT now(),
|
|
storage_prefix text,
|
|
duration_sec integer NOT NULL DEFAULT 0,
|
|
chapters jsonb NOT NULL DEFAULT '[]',
|
|
destinations jsonb NOT NULL DEFAULT '[]'
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_broadcast_session_channel ON broadcast_session (channel_id, started_at);
|