# app/schemas/evidence.py from pydantic import BaseModel, Field from typing import Optional class RegistrationDocumentExtracted(BaseModel): """A magyar forgalmi engedély teljes adattartalma.""" # A - Okmány adatok license_plate: Optional[str] = Field(None, alias="A", description="Rendszám") first_registration_date: Optional[str] = Field(None, alias="B", description="Első nyilvántartásba vétel") doc_serial_number: Optional[str] = Field(None, description="Okmány sorszáma (jobb felső sarok)") # C - Tulajdonos/Üzembentartó adatok owner_last_name: Optional[str] = Field(None, alias="C.1.1", description="Családi név vagy cégnév") owner_first_name: Optional[str] = Field(None, alias="C.1.2", description="Utónév") owner_address: Optional[str] = Field(None, alias="C.1.3", description="Lakcím/Székhely") owner_status: Optional[str] = Field(None, alias="C.4", description="Jogosultság státusza (a=tulaj, b=nem tulaj)") # D - Jármű technikai adatai make: Optional[str] = Field(None, alias="D.1", description="Gyártmány") vehicle_type: Optional[str] = Field(None, alias="D.2", description="Típus") commercial_description: Optional[str] = Field(None, alias="D.3", description="Kereskedelmi leírás") vin: Optional[str] = Field(None, alias="E", description="Alvázszám (17 karakter)") # G, F - Tömeg adatok weight_kg: Optional[int] = Field(None, alias="G", description="Saját tömeg") max_weight_kg: Optional[int] = Field(None, alias="F.1", description="Együttes tömeg") # P, V - Motor és Környezetvédelem engine_capacity: Optional[int] = Field(None, alias="P.1", description="Hengerűrtartalom (cm3)") engine_power: Optional[float] = Field(None, alias="P.2", description="Teljesítmény (kW)") fuel_type: Optional[str] = Field(None, alias="P.3", description="Hajtóanyag") engine_code: Optional[str] = Field(None, alias="P.5", description="Motorkód") env_category: Optional[str] = Field(None, alias="V.9", description="Környezetvédelmi osztály") # R, S, H - Egyéb color: Optional[str] = Field(None, alias="R", description="Szín") seats: Optional[int] = Field(None, alias="S.1", description="Ülések száma") expiry_date: Optional[str] = Field(None, alias="H", description="Műszaki érvényesség") transmission_type: Optional[str] = Field(None, description="Sebességváltó fajtája") class Config: populate_by_name = True class OcrResponse(BaseModel): success: bool message: str data: Optional[RegistrationDocumentExtracted] = None