From 836bc4294beca1c578834fa6506b4c5f832939de Mon Sep 17 00:00:00 2001 From: Lars Date: Sun, 22 Mar 2026 08:28:44 +0100 Subject: [PATCH] fix: convert empty strings to None for TIME fields in sleep router PostgreSQL TIME type doesn't accept empty strings. Converting empty bedtime/wake_time to None before INSERT/UPDATE. Co-Authored-By: Claude Opus 4.6 --- backend/routers/sleep.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/routers/sleep.py b/backend/routers/sleep.py index 2c84480..87753ec 100644 --- a/backend/routers/sleep.py +++ b/backend/routers/sleep.py @@ -164,6 +164,10 @@ def create_sleep( """Create or update sleep entry (upsert by date).""" pid = session['profile_id'] + # Convert empty strings to None for TIME fields + bedtime = data.bedtime if data.bedtime else None + wake_time = data.wake_time if data.wake_time else None + with get_db() as conn: cur = get_cursor(conn) @@ -191,7 +195,7 @@ def create_sleep( updated_at = CURRENT_TIMESTAMP RETURNING * """, ( - pid, data.date, data.bedtime, data.wake_time, data.duration_minutes, + pid, data.date, bedtime, wake_time, data.duration_minutes, data.quality, data.wake_count, data.deep_minutes, data.rem_minutes, data.light_minutes, data.awake_minutes, data.note, data.source )) @@ -210,6 +214,10 @@ def update_sleep( """Update existing sleep entry by ID.""" pid = session['profile_id'] + # Convert empty strings to None for TIME fields + bedtime = data.bedtime if data.bedtime else None + wake_time = data.wake_time if data.wake_time else None + with get_db() as conn: cur = get_cursor(conn) @@ -230,7 +238,7 @@ def update_sleep( WHERE id = %s AND profile_id = %s RETURNING * """, ( - data.date, data.bedtime, data.wake_time, data.duration_minutes, + data.date, bedtime, wake_time, data.duration_minutes, data.quality, data.wake_count, data.deep_minutes, data.rem_minutes, data.light_minutes, data.awake_minutes, data.note, id, pid ))