-- Dashboard-Widgets: explizite Feature-Anforderungen (Custom) statt nur widget_catalog.requires_feature
-- Kein Eintrag in dashboard_widget_requirement_custom → Anforderungen aus Code (Katalog).
-- Eintrag vorhanden → AND über alle zugeordneten features (0 Zeilen = kein Feature nötig).

CREATE TABLE IF NOT EXISTS dashboard_widget_requirement_custom (
    widget_id VARCHAR(64) PRIMARY KEY,
    updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS widget_feature_requirements (
    widget_id VARCHAR(64) NOT NULL REFERENCES dashboard_widget_requirement_custom (widget_id) ON DELETE CASCADE,
    feature_id TEXT NOT NULL REFERENCES features (id) ON DELETE CASCADE,
    PRIMARY KEY (widget_id, feature_id)
);

CREATE INDEX IF NOT EXISTS idx_widget_feature_requirements_feature_id ON widget_feature_requirements (feature_id);
