from decimal import Decimal from uuid import UUID, uuid4 from pydantic import BaseModel, Field, field_validator class Account(BaseModel): id: UUID = Field(default_factory=uuid4) name: str = "" currency: str = "USD" balance: Decimal = Field(default=Decimal("0")) @field_validator("balance") @classmethod def _balance_non_negative(cls, v: Decimal) -> Decimal: if v < 0: raise ValueError("balance must be non-negative") return v