diff --git a/src/baby_monitor/models/sleep.py b/src/baby_monitor/models/sleep.py index 2a48251..2550ca2 100644 --- a/src/baby_monitor/models/sleep.py +++ b/src/baby_monitor/models/sleep.py @@ -15,6 +15,7 @@ class CreateSleepRequest(BaseModel): class UpdateSleepRequest(BaseModel): """Request model for updating a sleep log.""" + start_time: datetime | None = None end_time: datetime | None = None diff --git a/src/baby_monitor/repositories/interfaces/sleep_repository_interface.py b/src/baby_monitor/repositories/interfaces/sleep_repository_interface.py index 655af76..75c6922 100644 --- a/src/baby_monitor/repositories/interfaces/sleep_repository_interface.py +++ b/src/baby_monitor/repositories/interfaces/sleep_repository_interface.py @@ -32,6 +32,7 @@ class SleepRepositoryInterface(ABC): def update( self, sleep_id: int, + start_time: datetime | None = None, end_time: datetime | None = None, ) -> dict | None: """Update a sleep log entry.""" diff --git a/src/baby_monitor/repositories/sleep/sqlite_sleep.py b/src/baby_monitor/repositories/sleep/sqlite_sleep.py index 819c47d..43826aa 100644 --- a/src/baby_monitor/repositories/sleep/sqlite_sleep.py +++ b/src/baby_monitor/repositories/sleep/sqlite_sleep.py @@ -73,6 +73,7 @@ class DatabaseSleepRepository(SleepRepositoryInterface): def update( self, sleep_id: int, + start_time: datetime | None = None, end_time: datetime | None = None, ) -> dict | None: """Update a sleep log entry.""" @@ -80,6 +81,8 @@ class DatabaseSleepRepository(SleepRepositoryInterface): if not sleep: return None + if start_time is not None: + sleep.start_time = start_time # type: ignore[assignment] if end_time is not None: sleep.end_time = end_time # type: ignore[assignment] diff --git a/src/baby_monitor/routers/sleep.py b/src/baby_monitor/routers/sleep.py index 7f6f1c6..a4ba414 100644 --- a/src/baby_monitor/routers/sleep.py +++ b/src/baby_monitor/routers/sleep.py @@ -112,6 +112,7 @@ def update_sleep( updated = sleep_repo.update( sleep_id=sleep_id, + start_time=request.start_time, end_time=request.end_time, )