"""
Shared keyword-run tracker.

Table: keyword_runs
  keyword   - the keyword (or CPV code) searched
  source    - scraper source name (europa, tendera.at, nipez, etc.)
  run_date  - DATE of the run (today)
  run_at    - full DATETIME when the run completed

Usage:
    from keyword_tracker import is_keyword_done, mark_keyword_done

    if is_keyword_done(conn, keyword, source):
        print(f"  [SKIP] Already ran today: {keyword}")
        continue

    # ... do scraping ...

    mark_keyword_done(conn, keyword, source)
"""

from datetime import date


def is_keyword_done(conn, keyword, source):
    """Return True if keyword+source was already run today."""
    cursor = conn.cursor()
    cursor.execute(
        "SELECT 1 FROM keyword_runs WHERE keyword = %s AND source = %s AND run_date = %s LIMIT 1",
        (keyword, source, date.today())
    )
    result = cursor.fetchone()
    cursor.close()
    return result is not None


def mark_keyword_done(conn, keyword, source):
    """Record that keyword+source was completed right now."""
    cursor = conn.cursor()
    cursor.execute(
        "INSERT INTO keyword_runs (keyword, source, run_date, run_at) VALUES (%s, %s, %s, NOW())",
        (keyword, source, date.today())
    )
    conn.commit()
    cursor.close()

