from datetime import date, datetime from decimal import Decimal from pydantic import BaseModel, ConfigDict class CarBase(BaseModel): name: str make: str | None = None model: str | None = None year: int | None = None plate_number: str | None = None vin: str | None = None fuel_type: str | None = None purchase_date: date | None = None purchase_price: Decimal | None = None current_odometer: int | None = None class CarCreate(CarBase): owner_id: int class CarUpdate(BaseModel): name: str | None = None make: str | None = None model: str | None = None year: int | None = None plate_number: str | None = None vin: str | None = None fuel_type: str | None = None purchase_date: date | None = None purchase_price: Decimal | None = None current_odometer: int | None = None class CarRead(CarBase): id: int owner_id: int created_at: datetime model_config = ConfigDict(from_attributes=True) class CarModelRead(BaseModel): id: int name: str model_config = ConfigDict(from_attributes=True) class CarMakeRead(BaseModel): id: int name: str country: str | None = None models: list[CarModelRead] = [] model_config = ConfigDict(from_attributes=True)