Source code for lalandre_core.models.versions

"""Pydantic model for version records associated with one act."""

from datetime import datetime
from typing import Optional

from pydantic import BaseModel, ConfigDict, Field

from .types import VersionType


[docs] class Versions(BaseModel): """Represent one dated version of a legal act.""" model_config = ConfigDict(from_attributes=True) id: Optional[int] = Field(default=None, description="Primary key") act_id: int = Field(..., description="Foreign key to acts") version_number: int = Field(..., gt=0, description="Version number") version_type: VersionType = Field(..., description="Type of version") version_date: datetime = Field(..., description="Version date") source_url: Optional[str] = Field(default=None, description="Source URL") is_current: bool = Field(default=False, description="Is current version") created_at: Optional[datetime] = Field(default=None, description="Creation timestamp")