from pydantic import BaseModel from typing import Optional, List, Dict class ChatRequest(BaseModel): message: str top_k: int = 3 class ChatResponse(BaseModel): query: str response: str sources: List[Dict] class BookInfo(BaseModel): title: str source: str class UploadResponse(BaseModel): message: str filename: str class ScheduleInfo(BaseModel): id: int time: str book: Optional[str] enabled: bool next_run: Optional[str] = None class ScheduleRequest(BaseModel): time: str book: Optional[str] = None enabled: bool = True