from dataclasses import dataclass


@dataclass(frozen=True, slots=True)
class SourceCandidate:
    chunk_id: str
    document_id: str
    filename: str
    order_index: int
    page_number: int | None
    content: str
    score: float


@dataclass(frozen=True, slots=True)
class PreparedChunk:
    id: str
    document_id: str
    order_index: int
    page_number: int | None
    content: str


@dataclass(frozen=True, slots=True)
class VectorHit:
    chunk_id: str
    document_id: str
    order_index: int
    score: float
