from pydantic import BaseModel, Field from typing import Optional, List, Dict, Any from datetime import datetime class ChatRequest(BaseModel): message: str = Field(..., min_length=1, max_length=2000) conversation_id: Optional[str] = None class ChatResponse(BaseModel): response: str conversation_id: str tokens_used: Optional[int] = None model: Optional[str] = None class ScheduleGenerateRequest(BaseModel): child_age: int = Field(..., ge=1, le=18) preferences: List[str] = Field(default_factory=list) date: str # ISO format date string description: Optional[str] = None class ScheduleGenerateResponse(BaseModel): schedule_id: str title: str tasks: List[Dict[str, Any]] tokens_used: Optional[int] = None class ConversationHistory(BaseModel): conversation_id: str messages: List[Dict[str, Any]] created_at: datetime updated_at: datetime class Config: from_attributes = True