from __future__ import annotations

from pydantic import BaseModel, Field


class SearchRequest(BaseModel):
    question: str = Field(..., min_length=3, max_length=4000)


class SourceChunk(BaseModel):
    id: int
    text_chunk: str
    similarity: float
    chunk_index: int | None = None
    source_file: str | None = None


class SearchResponse(BaseModel):
    answer: str
    sources: list[SourceChunk]
