05/23 Phase 3

This commit is contained in:
2026-05-23 11:18:25 -04:00
parent f33962cb15
commit 5dcf93a85f
7 changed files with 467 additions and 19 deletions
+39
View File
@@ -224,6 +224,45 @@ def get_draw_count(game_id):
conn.close()
def get_draws_with_game(game_id=None, limit=None, date_from=None, date_to=None, order="DESC"):
"""
Like get_draws() but JOINs games so each row includes game_name.
game_id=None returns draws for all games.
Used by the History screen.
"""
conn = get_connection()
try:
cursor = conn.cursor()
query = """
SELECT d.*, g.name AS game_name
FROM draws d
JOIN games g ON g.id = d.game_id
WHERE 1=1
"""
params = []
if game_id is not None:
query += " AND d.game_id = ?"
params.append(game_id)
if date_from:
query += " AND d.draw_date >= ?"
params.append(date_from)
if date_to:
query += " AND d.draw_date <= ?"
params.append(date_to)
order_sql = "DESC" if order.upper() == "DESC" else "ASC"
query += f" ORDER BY d.draw_date {order_sql}, g.name ASC"
if limit:
query += " LIMIT ?"
params.append(limit)
cursor.execute(query, params)
return cursor.fetchall()
finally:
conn.close()
def get_all_draws_numbers(game_id):
"""
Return all draws as list of dicts with parsed number lists.