from pydantic import BaseModel, ConfigDict from datetime import datetime from typing import Optional class CalendarEventCreate(BaseModel): title: str description: Optional[str] = None start_datetime: datetime end_datetime: datetime all_day: bool = False color: Optional[str] = None location_id: Optional[int] = None recurrence_rule: Optional[str] = None is_starred: bool = False class CalendarEventUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None start_datetime: Optional[datetime] = None end_datetime: Optional[datetime] = None all_day: Optional[bool] = None color: Optional[str] = None location_id: Optional[int] = None recurrence_rule: Optional[str] = None is_starred: Optional[bool] = None class CalendarEventResponse(BaseModel): id: int title: str description: Optional[str] start_datetime: datetime end_datetime: datetime all_day: bool color: Optional[str] location_id: Optional[int] recurrence_rule: Optional[str] is_starred: bool created_at: datetime updated_at: datetime model_config = ConfigDict(from_attributes=True)