23 lines
917 B
SQL
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);
|