47 lines
2.6 KiB
Python
Executable File
47 lines
2.6 KiB
Python
Executable File
# 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 |