"""Pydantic request/response schemas.""" from typing import List, Optional from pydantic import BaseModel, Field class DocumentSummary(BaseModel): id: str filename: str content_type: str num_chunks: int num_chars: int ocr_used: bool created_at: str class IngestResponse(BaseModel): document: DocumentSummary message: str class ChatRequest(BaseModel): question: str = Field(..., min_length=1) # Optionally restrict retrieval to specific uploaded documents. document_ids: Optional[List[str]] = None top_k: Optional[int] = None class Source(BaseModel): document_id: str filename: str chunk_index: int score: float snippet: str class ChatResponse(BaseModel): answer: str sources: List[Source]