CREATE TABLE metadata_cache ( id BIGSERIAL PRIMARY KEY, provider TEXT NOT NULL, provider_id TEXT NOT NULL, media_type TEXT NOT NULL, data JSONB NOT NULL, cached_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), expires_at TIMESTAMPTZ NOT NULL ); CREATE UNIQUE INDEX idx_metadata_cache_lookup ON metadata_cache (provider, provider_id); CREATE INDEX idx_metadata_cache_expired ON metadata_cache (expires_at) WHERE expires_at < NOW();