import sqlite3
from datetime import datetime, timedelta, timezone

from app.config import MAX_DAILY_UPLOADS
from app.orchestrator.scheduling import TR_UTC_OFFSET_HOURS


def uploads_today(conn: sqlite3.Connection) -> int:
    tr_today = (datetime.now(timezone.utc) + timedelta(hours=TR_UTC_OFFSET_HOURS)).date().isoformat()
    row = conn.execute(
        "SELECT COUNT(*) FROM facts WHERE status = 'uploaded' AND date(datetime(created_at, ?)) = ?",
        (f"+{TR_UTC_OFFSET_HOURS} hours", tr_today),
    ).fetchone()
    return row[0] if row else 0


def can_upload_more(conn: sqlite3.Connection) -> bool:
    return uploads_today(conn) < MAX_DAILY_UPLOADS
