from pydantic import BaseModel


class HighlightSegment(BaseModel):
    text: str
    match: bool = False


class SearchResultItem(BaseModel):
    type: str
    id: int
    title: str
    subtitle: str | None = None
    matched_field: str | None = None
    matched_value: str | None = None
    matched_value_segments: list[HighlightSegment] | None = None
    title_segments: list[HighlightSegment] | None = None


class SearchResponse(BaseModel):
    query: str
    items: list[SearchResultItem]
    total: int
    page: int
    page_size: int
