Files
OverCooked-Installer/s-migrations/000006_e_contract_playback_decisions.up.sql
T

23 lines
917 B
SQL

CREATE TABLE playback_decisions (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid NOT NULL REFERENCES users(id),
media_id uuid NOT NULL,
library_id uuid NOT NULL,
source_id uuid NOT NULL,
device_id text NOT NULL,
route_id text,
allowed boolean NOT NULL,
deny_code text,
max_bitrate bigint NOT NULL DEFAULT 0 CHECK (max_bitrate >= 0),
allow_download boolean NOT NULL DEFAULT false,
max_playbacks integer NOT NULL DEFAULT 0 CHECK (max_playbacks >= 0),
max_device_playbacks integer NOT NULL DEFAULT 0 CHECK (max_device_playbacks >= 0),
policy_revision bigint NOT NULL CHECK (policy_revision >= 0),
expires_at timestamptz NOT NULL,
consumed_at timestamptz,
created_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX playback_decisions_expiry_idx ON playback_decisions(expires_at);
CREATE INDEX playback_decisions_user_idx ON playback_decisions(user_id, created_at DESC);