import uuid
from datetime import datetime

from pydantic import BaseModel


class CollectionSummary(BaseModel):
    knowledge_source_id: uuid.UUID | None
    filename: str
    category: str | None
    chunk_count: int
    indexed_at: datetime | None


class SearchRequest(BaseModel):
    project_id: uuid.UUID
    query: str
    top_k: int = 5
    hybrid: bool = False
    similarity_threshold: float | None = None


class SearchResult(BaseModel):
    chunk_id: uuid.UUID
    chunk_text: str
    chunk_index: int
    score: float
    knowledge_source_id: uuid.UUID | None
    source_filename: str | None
    category: str | None
