MODIFIED SCRIPTS — Date Cutoff from .env
=========================================
Date: 2026-03-24

All scripts below now read their cutoff window from the .env file.
Update the corresponding variable in .env to change how far back each scraper goes.

.env variables to update:
--------------------------
  TENDERA_DAYS=30      → tendara.at cutoff (days back from today)
  EUROPA_DAYS=30       → europa (ted.europa.eu) cutoff
  NIPEZ_DAYS=30        → nen.nipez.cz cutoff
  EVERGABE_DAYS=30     → evergabe-online.de cutoff

Modified scripts:
-----------------
  tendara/tendara_keywords.py
    - Added: from datetime import timedelta
    - Added: CUTOFF_DAYS = int(os.getenv('TENDERA_DAYS', 30))
    - Added: CUTOFF_DATE = (datetime.now() - timedelta(days=CUTOFF_DAYS)).strftime('%Y-%m-%d')
    - Changed: SORTING_DATE range filter 'gte' from None → CUTOFF_DATE (API-level filter)

  tendara/tendara_all.py
    - Added: from datetime import timedelta
    - Added: CUTOFF_DAYS = int(os.getenv('TENDERA_DAYS', 30))
    - Added: CUTOFF_DATE = (datetime.now() - timedelta(days=CUTOFF_DAYS)).strftime('%Y-%m-%d')
    - Added: SORTING_DATE range filter in fetch_page() payload (API-level filter)

  europa-python/europa_keywords.py
    - Changed: CUTOFF_DATE from hardcoded timedelta(days=30)
               → timedelta(days=int(os.getenv('EUROPA_DAYS', 30)))

  evergabe/evergabe_keywords.py
    - Added: from datetime import timedelta
    - Added: CUTOFF_DAYS = int(os.getenv('EVERGABE_DAYS', 30))
    - Added: CUTOFF_DATE = datetime.now() - timedelta(days=CUTOFF_DAYS)
    - Added: per-row publication_date check in scrape_cpv() — stops pagination when record older than cutoff
