85 lines
2.0 KiB
Python
85 lines
2.0 KiB
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
|
|
class MakeItem(BaseModel):
|
|
"""Make item response model"""
|
|
id: int
|
|
name: str
|
|
|
|
class ModelItem(BaseModel):
|
|
"""Model item response model"""
|
|
id: int
|
|
name: str
|
|
|
|
class TrimItem(BaseModel):
|
|
"""Trim item response model"""
|
|
id: int
|
|
name: str
|
|
|
|
class EngineItem(BaseModel):
|
|
"""Engine item response model"""
|
|
id: int
|
|
name: str
|
|
|
|
class TransmissionItem(BaseModel):
|
|
"""Transmission item response model"""
|
|
name: str
|
|
|
|
class MakesResponse(BaseModel):
|
|
"""Makes response model"""
|
|
makes: List[MakeItem]
|
|
|
|
class YearsResponse(BaseModel):
|
|
"""Years response model"""
|
|
years: List[int]
|
|
|
|
class ModelsResponse(BaseModel):
|
|
"""Models response model"""
|
|
models: List[ModelItem]
|
|
|
|
class TrimsResponse(BaseModel):
|
|
"""Trims response model"""
|
|
trims: List[TrimItem]
|
|
|
|
class EnginesResponse(BaseModel):
|
|
"""Engines response model"""
|
|
engines: List[EngineItem]
|
|
|
|
class TransmissionsResponse(BaseModel):
|
|
"""Transmissions response model"""
|
|
transmissions: List[TransmissionItem]
|
|
|
|
class VINDecodeResult(BaseModel):
|
|
"""VIN decode result model"""
|
|
make: Optional[str] = None
|
|
model: Optional[str] = None
|
|
year: Optional[int] = None
|
|
trim_name: Optional[str] = None
|
|
engine_description: Optional[str] = None
|
|
transmission_description: Optional[str] = None
|
|
horsepower: Optional[float] = None
|
|
torque: Optional[float] = None
|
|
top_speed: Optional[float] = None
|
|
fuel: Optional[str] = None
|
|
confidence_score: Optional[float] = None
|
|
vehicle_type: Optional[str] = None
|
|
|
|
class VINDecodeRequest(BaseModel):
|
|
"""VIN decode request model"""
|
|
vin: str
|
|
|
|
class VINDecodeResponse(BaseModel):
|
|
"""VIN decode response model"""
|
|
vin: str
|
|
result: Optional[VINDecodeResult]
|
|
success: bool
|
|
error: Optional[str] = None
|
|
|
|
class HealthResponse(BaseModel):
|
|
"""Health check response model"""
|
|
status: str
|
|
database: str
|
|
cache: str
|
|
version: str
|
|
etl_last_run: Optional[str] = None
|