"""Analytics export/import, source exclusions, and KPI drill-down support.

Additive migration only. It creates the analytics_source_exclusions table used by
Admin → Analytics to exclude internal/test referrers from dashboard counts.
"""


def upgrade(db):
    db.executescript(
        """
        CREATE TABLE IF NOT EXISTS analytics_source_exclusions (
            id INTEGER PRIMARY KEY,
            source_value TEXT NOT NULL,
            reason TEXT,
            is_enabled INTEGER DEFAULT 1,
            hit_count INTEGER DEFAULT 0,
            last_hit_at TEXT,
            created_at TEXT,
            updated_at TEXT,
            UNIQUE(source_value)
        );
        CREATE INDEX IF NOT EXISTS idx_analytics_source_exclusions_enabled
            ON analytics_source_exclusions(is_enabled);
        """
    )
