"""Windows: check NL_O1 coverage in local keiba.db. ASCII-only for cmd."""
import sqlite3
import sys

path = sys.argv[1] if len(sys.argv) > 1 else r"data\keiba.db"
conn = sqlite3.connect(path)
total = conn.execute("SELECT COUNT(*) FROM NL_O1").fetchone()[0]
with_odds = conn.execute(
    "SELECT COUNT(DISTINCT Year||JyoCD||MonthDay||RaceNum) "
    "FROM NL_O1 WHERE TanOdds IS NOT NULL AND TanOdds != ''"
).fetchone()[0]
print("NL_O1 rows:", total)
print("races_with_tanodds:", with_odds)
print("target: 18000 or more")
print("")
print("Year   races_all  with_odds")
for y, all_r, with_o in conn.execute(
    """
    SELECT Year,
           COUNT(DISTINCT JyoCD||MonthDay||RaceNum),
           COUNT(DISTINCT CASE WHEN TanOdds IS NOT NULL AND TanOdds != ''
                THEN JyoCD||MonthDay||RaceNum END)
    FROM NL_O1
    WHERE Year >= '2020'
    GROUP BY Year
    ORDER BY Year
    """
):
    print(f"{y}  {all_r:>10}  {with_o:>10}")
if conn.execute("SELECT name FROM sqlite_master WHERE name='NL_RA'").fetchone():
    print("")
    print("NL_RA races (reference):")
    for y, c in conn.execute(
        "SELECT Year, COUNT(*) FROM NL_RA WHERE Year >= '2020' GROUP BY Year ORDER BY Year"
    ):
        print(f"  {y}: {c}")
conn.close()
