From f07221b4e1d8aa464a44fe566884ccc0565406e9 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Nov 2026 16:17:19 +0100 Subject: v3.2.0: straight and split bets anywhere on the felt; add history command --- src/server/database.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/server/database.rs') diff --git a/src/server/database.rs b/src/server/database.rs index 6dd71a3..cfc48c1 100644 --- a/src/server/database.rs +++ b/src/server/database.rs @@ -399,3 +399,30 @@ fn abandoned_details(raw: &str) -> String { } value.to_string() } + +/// Most recent settled plays for a user, newest first. +pub fn recent_plays( + conn: &Connection, + username: &str, + limit: u32, +) -> rusqlite::Result> { + let mut statement = conn.prepare( + "SELECT game_type, bet_amount, winnings, balance_after, details, created_at + FROM plays + WHERE username = ?1 + ORDER BY created_at DESC, rowid DESC + LIMIT ?2", + )?; + let rows = statement.query_map(params![username, limit], |row| { + let details: String = row.get(4)?; + Ok(crate::history::PlayRecord { + game: row.get(0)?, + bet: row.get(1)?, + winnings: row.get(2)?, + balance_after: row.get(3)?, + at: row.get(5)?, + details: serde_json::from_str(&details).unwrap_or(serde_json::Value::Null), + }) + })?; + rows.collect() +} -- cgit v1.2.3