Source code for lalandre_core.models.chunks

"""Pydantic model for chunk records derived from subdivisions."""

from datetime import datetime
from typing import Any, Optional

from pydantic import BaseModel, ConfigDict, Field


[docs] class Chunks(BaseModel): """Represent one persisted chunk of subdivision content.""" model_config = ConfigDict(from_attributes=True) id: Optional[int] = Field(default=None, description="Primary key") subdivision_id: int = Field(..., description="Foreign key to subdivisions") chunk_index: int = Field(..., ge=0, description="Sequential index within subdivision") content: str = Field(..., description="Chunk text content") char_start: int = Field(..., ge=0, description="Start position in subdivision content") char_end: int = Field(..., gt=0, description="End position in subdivision content") token_count: Optional[int] = Field(default=None, ge=0, description="Estimated token count") chunk_metadata: Optional[dict[str, Any]] = Field(default=None, description="Additional metadata (JSON)") created_at: Optional[datetime] = Field(default=None, description="Creation timestamp")