aboutsummaryrefslogtreecommitdiffstats
path: root/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'models.py')
-rw-r--r--models.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/models.py b/models.py
index a844271..6def19e 100644
--- a/models.py
+++ b/models.py
@@ -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()