diff options
Diffstat (limited to 'models.py')
| -rw-r--r-- | models.py | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -252,3 +252,33 @@ def save_workout_template_exercises( ), ) conn.commit() + + +# --- Weight Logs --- + + +def add_weight_log( + conn: sqlite3.Connection, + date_time: str, + weight: float, + note: str | None = None, +) -> int: + cur = conn.execute( + "INSERT INTO weight_logs (date_time, weight, note) VALUES (?, ?, ?)", + (date_time, weight, note), + ) + conn.commit() + assert cur.lastrowid is not None + return cur.lastrowid + + +def list_weight_logs(conn: sqlite3.Connection, limit: int = 20) -> list[sqlite3.Row]: + return conn.execute( + "SELECT id, date_time, weight, note FROM weight_logs ORDER BY date_time DESC LIMIT ?", + (limit,), + ).fetchall() + + +def delete_weight_log(conn: sqlite3.Connection, log_id: int) -> None: + conn.execute("DELETE FROM weight_logs WHERE id = ?", (log_id,)) + conn.commit() |
