from __future__ import annotations

from pydantic import BaseModel, Field


class LucosChunkEmbedItem(BaseModel):
    chunk_id: str
    chunk_hash: str
    repo_id: str
    file_path: str
    content: str
    source_type: str = Field(description="code or docs")
    start_line: int = Field(ge=1)
    end_line: int = Field(ge=1)
    language: str | None = None
    symbol_name: str | None = None
    snapshot_id: str
    commit_sha: str | None = None


class LucosChunksEmbedRequest(BaseModel):
    chunks: list[LucosChunkEmbedItem] = Field(min_length=1)


class LucosChunksEmbedResponse(BaseModel):
    requested: int
    embedded: int
    indexed: int
    failed: int


class LucosChunksDeleteRequest(BaseModel):
    record_ids: list[str] = Field(default_factory=list)
