from pydantic import BaseModel, Field from typing import List, Optional from datetime import datetime class Message(BaseModel): sender: str # "user" or "ai" text: Optional[str] = None image_url: Optional[str] = None voice_url: Optional[str] = None created_at: datetime = Field(default_factory=datetime.utcnow) class Session(BaseModel): id: str = Field(default_factory=str, alias="_id") user_id: str title: str messages: List[Message] = [] created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow)