CREATE TABLE IF NOT EXISTS gateway.provider_models ( id uuid PRIMARY KEY, provider_id uuid NOT NULL REFERENCES gateway.providers(id) ON DELETE CASCADE, provider_model_id text NOT NULL CHECK ( length(provider_model_id) BETWEEN 1 AND 512 ), owned_by text NOT NULL DEFAULT '', metadata jsonb NOT NULL DEFAULT '{}'::jsonb, enabled boolean NOT NULL DEFAULT true, discovered_at timestamptz NOT NULL DEFAULT clock_timestamp(), last_seen_at timestamptz NOT NULL DEFAULT clock_timestamp(), updated_at timestamptz NOT NULL DEFAULT clock_timestamp(), UNIQUE (provider_id, provider_model_id) ); CREATE INDEX IF NOT EXISTS provider_models_provider_active_idx ON gateway.provider_models (provider_id, enabled, provider_model_id); COMMENT ON TABLE gateway.provider_models IS 'Provider model catalog snapshots. Missing upstream models are retained and disabled.';