"""Define schema models for doc."""

from pydantic import BaseModel
from typing import Optional
from datetime import datetime
# Group related schema definitions so validation rules stay consistent.



class DocumentUploadResponse(BaseModel):
    """Define the Document Upload Response API model."""
    doc_id: str
    filename: str
    size: int
    status: str = "uploaded"


class DocumentInfo(BaseModel):
    """Define the Document Info API model."""
    id: str
    name: str
    chunks: int
    status: str
    created_at: Optional[datetime] = None


class DocumentListResponse(BaseModel):
    """Define the Document List Response API model."""
    docs: list[DocumentInfo]


class ChunkInfo(BaseModel):
    """Define the Chunk Info API model."""
    chunk_id: str
    doc_name: str
    clause_id: Optional[str] = None
    chapter: Optional[str] = None
    content: str
    token_count: int
    chunk_index: int


class ParseResponse(BaseModel):
    """Define the Parse Response API model."""
    doc_id: str
    chunks: int
    status: str = "parsed"


class EmbedResponse(BaseModel):
    """Define the Embed Response API model."""
    doc_id: str
    vectors: int
    status: str = "embedded"