CREATE TABLE photo_exports ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), event_id uuid NOT NULL REFERENCES events(id) ON DELETE CASCADE, requested_by text NOT NULL REFERENCES "user"(id) ON DELETE CASCADE, filter text NOT NULL CHECK (filter IN ('approved', 'all')), status text NOT NULL DEFAULT 'pending', total integer NOT NULL DEFAULT 0, processed integer NOT NULL DEFAULT 0, expires_at timestamptz NOT NULL, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now() ); CREATE INDEX photo_exports_queue_idx ON photo_exports(status, created_at); CREATE UNIQUE INDEX photo_exports_active_idx ON photo_exports(event_id, requested_by) WHERE status IN ('pending', 'processing');