Files
babymonitor/backend/app/schemas.py
T
2026-06-08 16:17:11 +02:00

63 lines
1.2 KiB
Python

from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class SleepSessionCreate(BaseModel):
start_time: datetime
class SleepSessionUpdate(BaseModel):
start_time: Optional[datetime] = None
end_time: Optional[datetime] = None
class SleepSessionRead(BaseModel):
id: int
start_time: datetime
end_time: Optional[datetime] = None
created_at: datetime
updated_at: datetime
class SessionListResponse(BaseModel):
sessions: List[SleepSessionRead]
total: int
class DailySummaryDay(BaseModel):
date: str
total_minutes: int
day_minutes: int
night_minutes: int
class DailySummaryResponse(BaseModel):
days: List[DailySummaryDay]
class TimetableSlot(BaseModel):
date: str
slot_start: str
slot_end: str
sleeping: bool
class TimetableResponse(BaseModel):
slots: List[TimetableSlot]
class WakeupBedtimeDay(BaseModel):
date: str
wakeup_minutes: Optional[int] = None
bedtime_minutes: Optional[int] = None
class WakeupBedtimeResponse(BaseModel):
days: List[WakeupBedtimeDay]
class SummaryResponse(BaseModel):
total_sleeps: int
avg_sleeps_per_day: float
total_sleeps_all_time: int
avg_sleeps_per_day_all_time: float