"""API schemas (Pydantic) for DayOverride. Schemas are the API boundary — they validate request bodies and shape responses, kept separate from the domain entity so the wire format can evolve independently. """ from datetime import date, datetime from uuid import UUID from pydantic import BaseModel, Field from app.entities.day_override import DayOverride class DayOverrideCreate(BaseModel): workspace_id: UUID date: date is_working_day: bool note: str | None = Field(default=None, max_length=280) class DayOverrideUpdate(BaseModel): is_working_day: bool note: str | None = Field(default=None, max_length=280) class DayOverrideResponse(BaseModel): id: UUID workspace_id: UUID date: date is_working_day: bool note: str | None created_at: datetime | None updated_at: datetime | None @classmethod def from_entity(cls, entity: DayOverride) -> "DayOverrideResponse": return cls( id=entity.id, workspace_id=entity.workspace_id, date=entity.date, is_working_day=entity.is_working_day, note=entity.note, created_at=entity.created_at, updated_at=entity.updated_at, )