from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any

class DocumentIngestRequest(BaseModel):
    text: str = Field(..., description="The content of the document to ingest.")
    metadata: Optional[Dict[str, Any]] = Field(
        default_factory=dict, 
        description="Optional metadata to attach to the document chunks, e.g., {'source': 'my_doc.pdf'}"
    )

class DocumentIngestResponse(BaseModel):
    message: str = Field(..., description="Status message of the ingestion process.")
    
