feat: v1.7 overhaul - identity hash, triple wallet, financial ledger, and security audit system
This commit is contained in:
Binary file not shown.
@@ -5,6 +5,7 @@ from datetime import datetime
|
||||
|
||||
# --- KATALÓGUS SÉMÁK (Gyári adatok) ---
|
||||
class AssetCatalogBase(BaseModel):
|
||||
"""Alap katalógus adatok, amik a technikai dúsításból származnak."""
|
||||
make: str
|
||||
model: str
|
||||
generation: Optional[str] = None
|
||||
@@ -13,39 +14,57 @@ class AssetCatalogBase(BaseModel):
|
||||
vehicle_class: Optional[str] = None
|
||||
fuel_type: Optional[str] = None
|
||||
engine_code: Optional[str] = None
|
||||
|
||||
# --- ÚJ TECHNIKAI MEZŐK (Robot v1.0.8 Smart Hunter adatai) ---
|
||||
power_kw: Optional[int] = None
|
||||
engine_capacity: Optional[int] = None
|
||||
max_weight_kg: Optional[int] = None
|
||||
axle_count: Optional[int] = None
|
||||
body_type: Optional[str] = None
|
||||
|
||||
class AssetCatalogResponse(AssetCatalogBase):
|
||||
"""Katalógus válasz séma azonosítóval és extra gyári adatokkal."""
|
||||
id: int
|
||||
factory_data: Optional[Dict[str, Any]] = None # A robot által gyűjtött adatok
|
||||
factory_data: Optional[Dict[str, Any]] = None
|
||||
|
||||
# Pydantic v2 konfiguráció az ORM (SQLAlchemy) támogatáshoz
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
# --- JÁRMŰ SÉMÁK (Asset) ---
|
||||
class AssetBase(BaseModel):
|
||||
"""Jármű példány alapadatai (egyedi azonosítók)."""
|
||||
vin: str = Field(..., min_length=17, max_length=17)
|
||||
license_plate: str
|
||||
name: Optional[str] = None
|
||||
year_of_manufacture: Optional[int] = None
|
||||
|
||||
class AssetCreate(AssetBase):
|
||||
# A létrehozáshoz kellenek a katalógus infók is
|
||||
"""Séma új jármű felvételéhez."""
|
||||
make: str
|
||||
model: str
|
||||
vehicle_class: Optional[str] = "land"
|
||||
vehicle_class: Optional[str] = "car"
|
||||
fuel_type: Optional[str] = None
|
||||
current_reading: Optional[int] = 0
|
||||
|
||||
class AssetResponse(AssetBase):
|
||||
"""
|
||||
Teljes jármű válasz séma.
|
||||
Ez a séma tartalmazza a 'catalog' objektumot, amiben a dúsított műszaki adatok vannak.
|
||||
"""
|
||||
id: UUID
|
||||
catalog_id: int
|
||||
is_verified: bool
|
||||
catalog: AssetCatalogResponse # Ez a pont kapcsolja össze a dúsított technikai adatokat
|
||||
status: str
|
||||
is_verified: bool
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
# --- DIGITÁLIS IKER (Full Profile) ---
|
||||
# Ez a séma felel a 9 pontos költség és a mélységi szerviz adatok átadásáért
|
||||
class AssetFullProfile(BaseModel):
|
||||
"""
|
||||
Komplex jelentésekhez használt séma.
|
||||
Összefogja az identitást, telemetriát, pénzügyeket és szerviztörténetet.
|
||||
"""
|
||||
identity: Dict[str, Any]
|
||||
telemetry: Dict[str, Any]
|
||||
financial_summary: Dict[str, Any]
|
||||
|
||||
@@ -32,12 +32,17 @@ class UserKYCComplete(BaseModel):
|
||||
birth_date: date
|
||||
mothers_last_name: str
|
||||
mothers_first_name: str
|
||||
# Bontott címmezők (B pont szerint)
|
||||
address_zip: str
|
||||
address_city: str
|
||||
address_street_name: str
|
||||
address_street_type: str
|
||||
address_house_number: str
|
||||
address_hrsz: Optional[str] = None
|
||||
address_stairwell: Optional[str] = None # Lépcsőház
|
||||
address_floor: Optional[str] = None # Emelet
|
||||
address_door: Optional[str] = None # Ajtó
|
||||
address_hrsz: Optional[str] = None # Helyrajzi szám
|
||||
|
||||
identity_docs: Dict[str, DocumentDetail]
|
||||
ice_contact: ICEContact
|
||||
preferred_currency: Optional[str] = Field("HUF", max_length=3)
|
||||
|
||||
20
backend/app/schemas/service.py
Normal file
20
backend/app/schemas/service.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
|
||||
class ServiceCreateInternal(BaseModel):
|
||||
name: str
|
||||
postal_code: str
|
||||
city: str
|
||||
street_name: str
|
||||
street_type: str
|
||||
house_number: str
|
||||
stairwell: Optional[str] = None
|
||||
floor: Optional[str] = None
|
||||
door: Optional[str] = None
|
||||
hrsz: Optional[str] = None
|
||||
|
||||
contact_phone: Optional[str] = None
|
||||
email: Optional[str] = None
|
||||
website: Optional[str] = None
|
||||
source: str
|
||||
external_id: Optional[str] = None
|
||||
Reference in New Issue
Block a user