CREATE TYPE IF NOT EXISTS asset_variant_kind AS ENUM ( 'thumb', 'poster', 'video_mp4' ); CREATE TABLE IF NOT EXISTS asset_variants ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), asset_id uuid NOT NULL REFERENCES assets(id) ON DELETE CASCADE, kind asset_variant_kind NOT NULL, size int NOT NULL, key text NOT NULL, mime_type text NOT NULL, width int, height int, created_at timestamptz NOT NULL DEFAULT now(), UNIQUE(asset_id, kind, size) ); CREATE INDEX IF NOT EXISTS asset_variants_asset_id_idx ON asset_variants(asset_id);