from uuid import UUID, uuid4 from pydantic import BaseModel, Field, field_validator class Liability(BaseModel): id: UUID = Field(default_factory=uuid4) name: str = "" balance: float = 0.0 interest: float = 0.0 payment: float = 0.0 @field_validator("interest", "payment") @classmethod def _non_negative(cls, v: float) -> float: if v < 0: raise ValueError("must be non-negative") return v