"""Chore schemas.""" from pydantic import BaseModel, ConfigDict from typing import Optional from datetime import datetime from app.models.chore import ChoreFrequency, ChoreStatus class ChoreBase(BaseModel): """Base chore schema.""" title: str description: Optional[str] = None room: str frequency: ChoreFrequency assigned_user_id: Optional[int] = None due_date: Optional[datetime] = None class ChoreCreate(ChoreBase): """Schema for creating a chore.""" pass class ChoreUpdate(BaseModel): """Schema for updating a chore.""" title: Optional[str] = None description: Optional[str] = None room: Optional[str] = None frequency: Optional[ChoreFrequency] = None status: Optional[ChoreStatus] = None assigned_user_id: Optional[int] = None due_date: Optional[datetime] = None class AssignedUser(BaseModel): """Minimal user info for chore assignment.""" model_config = ConfigDict(from_attributes=True) id: int username: str full_name: str class Chore(ChoreBase): """Schema for a chore response.""" model_config = ConfigDict(from_attributes=True) id: int status: ChoreStatus assigned_user: Optional[AssignedUser] = None completed_at: Optional[datetime] = None created_at: datetime updated_at: datetime