47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
"""Diaper change-related request and response models."""
|
|
|
|
from datetime import datetime
|
|
from pydantic import BaseModel, Field
|
|
|
|
from baby_monitor.models.enums import (
|
|
PeeAmount,
|
|
PeeColor,
|
|
PoopAmount,
|
|
PoopColor,
|
|
)
|
|
|
|
|
|
class CreateDiaperChangeRequest(BaseModel):
|
|
"""Request model for creating a diaper change log."""
|
|
|
|
child_id: int = Field(..., gt=0)
|
|
change_time: datetime
|
|
poop_amount: PoopAmount | None = None
|
|
poop_color: PoopColor | None = None
|
|
pee_amount: PeeAmount | None = None
|
|
pee_color: PeeColor | None = None
|
|
|
|
|
|
class UpdateDiaperChangeRequest(BaseModel):
|
|
"""Request model for updating a diaper change log."""
|
|
|
|
change_time: datetime | None = None
|
|
poop_amount: PoopAmount | None = None
|
|
poop_color: PoopColor | None = None
|
|
pee_amount: PeeAmount | None = None
|
|
pee_color: PeeColor | None = None
|
|
|
|
|
|
class DiaperChangeResponse(BaseModel):
|
|
"""Response model for diaper change log data."""
|
|
|
|
id: int
|
|
child_id: int
|
|
change_time: datetime
|
|
poop_amount: str | None
|
|
poop_color: str | None
|
|
pee_amount: str | None
|
|
pee_color: str | None
|
|
created_at: datetime
|
|
child_name: str | None = None # Optional, populated when needed
|