689 lines
32 KiB
Python
689 lines
32 KiB
Python
"""
|
||
Vehicle Features & EV Constants
|
||
================================
|
||
Centralized dictionaries for car-specific dropdowns, EV connector types,
|
||
and categorized feature lists. All data is stored in the `individual_equipment`
|
||
JSONB column on the Asset model.
|
||
|
||
Usage:
|
||
from app.constants.vehicle_features import (
|
||
CAR_DRIVE_TYPES, CAR_TRANSMISSION_TYPES, CAR_AC_TYPES,
|
||
CAR_BODY_TYPES, CAR_FEATURES, AC_CONNECTOR_TYPES, DC_CONNECTOR_TYPES,
|
||
MOTORCYCLE_STROKES, MOTORCYCLE_COOLING, MOTORCYCLE_MIXTURE,
|
||
MOTORCYCLE_FEATURES,
|
||
LCV_BODY_TYPES, LCV_FEATURES,
|
||
HGV_TRANSMISSION_TYPES, HGV_PTO_TYPES, HGV_BODY_TYPES, HGV_FEATURES,
|
||
)
|
||
"""
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# CAR-SPECIFIC DROPDOWNS (only shown when vehicle_class == 'personal')
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
CAR_DRIVE_TYPES: dict[str, str] = {
|
||
"fwd": "Elsőkerék (FWD)",
|
||
"rwd": "Hátsókerék (RWD)",
|
||
"awd": "Összkerék (AWD / 4×4)",
|
||
"4wd": "Összkerék (4WD / kapcsolható)",
|
||
}
|
||
|
||
CAR_TRANSMISSION_TYPES: dict[str, str] = {
|
||
"manual": "Manuális",
|
||
"automatic": "Automata",
|
||
"sequential": "Szekvenciális",
|
||
"cvt": "CVT (Fokozatmentes)",
|
||
"dct": "DCT (Dupla kuplungos)",
|
||
"semi_auto": "Félautomata",
|
||
}
|
||
|
||
CAR_AC_TYPES: dict[str, str] = {
|
||
"manual": "Manuális klíma",
|
||
"automatic": "Automata klíma",
|
||
"dual_zone": "Kétzónás automata klíma",
|
||
"tri_zone": "Háromzónás automata klíma",
|
||
"quad_zone": "Négyzónás automata klíma",
|
||
}
|
||
|
||
CAR_BODY_TYPES: dict[str, str] = {
|
||
"sedan": "Szedán",
|
||
"hatchback": "Ferdehátú (Hatchback)",
|
||
"wagon": "Kombi (Estate)",
|
||
"coupe": "Coupé",
|
||
"convertible": "Kabrió (Convertible)",
|
||
"suv": "SUV / Szabadidő-autó",
|
||
"mpv": "MPV (Egyterű)",
|
||
"pickup": "Pickup",
|
||
"van": "Furgon (Van)",
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# CAR FEATURES / EXTRAS (categorized)
|
||
# Stored in individual_equipment.car_specs.features as a list of keys.
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
CAR_FEATURES: dict[str, dict[str, str]] = {
|
||
"technical": {
|
||
"abs": "ABS",
|
||
"esp": "ESP (Menetstabilizáló)",
|
||
"traction_control": "Kipörgésgátló (TCS)",
|
||
"hill_assist": "Hegymeneti tartó",
|
||
"hill_descent": "Lejtmenetvezérlő",
|
||
"lane_assist": "Sávtartó asszisztens",
|
||
"blind_spot": "Holtpont-figyelő",
|
||
"adaptive_cruise": "Adaptív tempomat (ACC)",
|
||
"parking_sensors_front": "Első parkolóérzékelők",
|
||
"parking_sensors_rear": "Hátsó parkolóérzékelők",
|
||
"rear_camera": "Tolatókamera",
|
||
"360_camera": "360°-os kamera",
|
||
"auto_parking": "Automatikus parkolóasszisztens",
|
||
"start_stop": "Start-Stop rendszer",
|
||
"keyless_go": "Kulcs nélküli indítás (Keyless Go)",
|
||
"night_vision": "Éjjellátó (Night Vision)",
|
||
"traffic_sign_recognition": "Táblafelismerő rendszer",
|
||
"driver_alert": "Fáradtságfigyelő",
|
||
"emergency_brake": "Vészfék asszisztens",
|
||
"cross_traffic_alert": "Keresztirányú forgalom figyelő",
|
||
},
|
||
"interior": {
|
||
"leather_seats": "Bőrülés",
|
||
"heated_seats_front": "Első ülésfűtés",
|
||
"heated_seats_rear": "Hátsó ülésfűtés",
|
||
"ventilated_seats": "Szellőztetett ülések",
|
||
"massage_seats": "Masszázsülés",
|
||
"electric_seats": "Elektromos ülésállítás",
|
||
"memory_seats": "Ülésmemória",
|
||
"sport_seats": "Sportülés",
|
||
"heated_steering": "Fűthető kormány",
|
||
"ambient_lighting": "Hangulatvilágítás (Ambient Light)",
|
||
"panoramic_roof": "Panorámatető",
|
||
"sunroof": "Napfénytető",
|
||
"auto_dim_mirror": "Automatikusan sötétedő belső tükör",
|
||
"electric_steering_adjust": "Elektromos kormányállítás",
|
||
"rear_blind": "Hátsó roló",
|
||
"rear_side_blinds": "Hátsó oldalsó rolók",
|
||
"digital_instrument_cluster": "Digitális műszeregység",
|
||
"head_up_display": "Head-Up Display (HUD)",
|
||
},
|
||
"exterior": {
|
||
"alloy_wheels": "Könnyűfém felni",
|
||
"roof_rails": "Tetősín (Roof Rails)",
|
||
"tow_bar": "Vontatóhorog (vonóhorog)",
|
||
"tinted_windows": "Sötétített üvegek",
|
||
"privacy_glass": "Privacy Glass",
|
||
"led_headlights": "LED fényszóró",
|
||
"adaptive_headlights": "Adaptív fényszóró (AFS)",
|
||
"fog_lights": "Ködlámpa",
|
||
"cornering_lights": "Kanyarvilágítás",
|
||
"rain_sensor": "Esőérzékelő",
|
||
"light_sensor": "Fényérzékelő",
|
||
"auto_wipers": "Automatikus ablaktörlő",
|
||
"electric_trunk": "Elektromos csomagtérajtó",
|
||
"hands_free_trunk": "Kihangosítható csomagtérajtó (Hands-Free)",
|
||
"side_steps": "Oldallépcső",
|
||
"mudguards": "Sárvédő",
|
||
},
|
||
"multimedia": {
|
||
"navigation": "Navigáció (GPS)",
|
||
"apple_carplay": "Apple CarPlay",
|
||
"android_auto": "Android Auto",
|
||
"bluetooth": "Bluetooth",
|
||
"usb_charging": "USB töltőcsatlakozó",
|
||
"wireless_charging": "Vezeték nélküli töltő",
|
||
"dab_radio": "DAB+ digitális rádió",
|
||
"premium_sound": "Prémium hangrendszer",
|
||
"subwoofer": "Mélynyomó (Subwoofer)",
|
||
"rear_entertainment": "Hátsó szórakoztató rendszer",
|
||
"wifi_hotspot": "WiFi Hotspot",
|
||
"voice_control": "Hangvezérlés",
|
||
"gesture_control": "Gesztusvezérlés",
|
||
},
|
||
"other": {
|
||
"spare_tire": "Pótkerék",
|
||
"tire_repair_kit": "Kerékpár-javító készlet",
|
||
"first_aid_kit": "Elsősegély csomag",
|
||
"warning_triangle": "Figyelmeztető háromszög",
|
||
"fire_extinguisher": "Tűzoltó készülék",
|
||
"winter_tires": "Téli gumi",
|
||
"cargo_net": "Csomagtér háló",
|
||
"cargo_cover": "Csomagtér takaró",
|
||
"pet_barrier": "Kutya rács / elválasztó",
|
||
"roof_box": "Tetős doboz",
|
||
"bike_rack": "Kerékpártartó",
|
||
"ski_rack": "Sítartó",
|
||
},
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# EV-SPECIFIC CONNECTOR TYPES
|
||
# Stored in individual_equipment.ev_specs
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
AC_CONNECTOR_TYPES: dict[str, str] = {
|
||
"type1": "Type 1 (SAE J1772)",
|
||
"type2": "Type 2 (Mennekes)",
|
||
"type3": "Type 3 (SCAME)",
|
||
"gb_t": "GB/T (Kínai szabvány)",
|
||
}
|
||
|
||
DC_CONNECTOR_TYPES: dict[str, str] = {
|
||
"ccs": "CCS (Combined Charging System)",
|
||
"chademo": "CHAdeMO",
|
||
"tesla_supercharger": "Tesla Supercharger",
|
||
"gb_t_dc": "GB/T DC (Kínai gyorstöltő)",
|
||
"nacs": "NACS (Tesla North American)",
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# MOTORCYCLE-SPECIFIC DROPDOWNS
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
MOTORCYCLE_STROKES: dict[str, str] = {
|
||
"2_stroke": "2 ütemű",
|
||
"4_stroke": "4 ütemű",
|
||
"electric": "Elektromos",
|
||
}
|
||
|
||
MOTORCYCLE_COOLING: dict[str, str] = {
|
||
"air": "Levegőhűtés",
|
||
"liquid": "Vízhűtés",
|
||
"oil": "Olajhűtés",
|
||
"air_oil": "Levegő/Olaj hűtés",
|
||
}
|
||
|
||
MOTORCYCLE_MIXTURE: dict[str, str] = {
|
||
"carburetor": "Karburátor",
|
||
"injection": "Befecskendezés",
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# MOTORCYCLE FEATURES / EXTRAS (categorized)
|
||
# Stored in individual_equipment.motorcycle_specs.features as a list of keys.
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
MOTORCYCLE_FEATURES: dict[str, dict[str, str]] = {
|
||
"technical": {
|
||
"dual_front_disc": "Dupla tárcsafék elöl",
|
||
"front_disc": "Tárcsafék elöl",
|
||
"rear_disc": "Tárcsafék hátul",
|
||
"chip_tuning": "Chiptuning",
|
||
"electronic_suspension": "Elektromos futómű állítás",
|
||
"onboard_computer": "Fedélzeti computer",
|
||
"metal_brake_line": "Fém fékcső",
|
||
"rev_counter": "Fordulatszámmérő",
|
||
"immobiliser": "Immobiliser",
|
||
"catalyst": "Katalizátor",
|
||
"electric_starter": "Önindító",
|
||
"all_wheel_drive": "Összkerékhajtás",
|
||
"sport_exhaust": "Sport kipufogó",
|
||
"sport_air_filter": "Sport légszűrő",
|
||
"turbo": "Turbó",
|
||
"12v_system": "12 V rendszer",
|
||
"heated_grip": "Markolat fűtés",
|
||
"seat_belt": "Biztonsági öv",
|
||
"dtc": "DTC",
|
||
},
|
||
"frame_body": {
|
||
"leather_seat": "Bőrülés",
|
||
"backrest": "Háttámla",
|
||
"center_stand": "Középsztender",
|
||
"footrest": "Lábtartó",
|
||
"windshield": "Motoros szélvédő",
|
||
"plexiglass": "Plexi",
|
||
"tank_pad": "Tankpad",
|
||
"tank_protector_leather": "Tankvédő bőr",
|
||
"seat_height_adjust": "Ülésmagasság állítás",
|
||
"crash_bar": "Bukócső / bukógomba",
|
||
"hand_guards": "Kézvédők",
|
||
"heated_mirror": "Fűthető tükör",
|
||
},
|
||
"luggage": {
|
||
"factory_cases": "Gyári dobozok",
|
||
"rear_case": "Hátsó doboz",
|
||
"side_cases": "Oldalsó dobozok",
|
||
"lockable_case": "Zárható doboz",
|
||
"side_bag": "Oldaltáska",
|
||
"tank_bag": "Tank táska",
|
||
"bag_holder_bracket": "Táskatartó konzol",
|
||
"fork_bag": "Villatáska",
|
||
},
|
||
"multimedia": {
|
||
"cd_player": "CD tár",
|
||
"gps_navigation": "GPS (navigáció)",
|
||
"hi_fi": "Hi-Fi",
|
||
"radio": "Rádiós magnó",
|
||
"info_display": "Információs kijelző",
|
||
},
|
||
"other": {
|
||
"under_warranty": "Garanciális",
|
||
"us_model": "Amerikai modell",
|
||
"immediate_takeover": "Azonnal elvihető",
|
||
"showroom_vehicle": "Bemutató jármű",
|
||
"orderable": "Rendelhető",
|
||
"car_trade_in_possible": "Autóbeszámítás lehetséges",
|
||
"female_owner": "Hölgy tulajdonostól",
|
||
"low_mileage": "Keveset futott",
|
||
"second_owner": "Második tulajdonostól",
|
||
"motorcycle_trade_in_possible": "Motorbeszámítás lehetséges",
|
||
"track_fairing": "Pályaidom",
|
||
"regularly_maintained": "Rendszeresen karbantartott",
|
||
"title_certificate": "Törzskönyv",
|
||
},
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# LCV-SPECIFIC BODY TYPES
|
||
# Shown when vehicle_class == 'lcv'
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
LCV_BODY_TYPES: dict[str, str] = {
|
||
"closed_van": "Zárt furgon",
|
||
"pickup": "Pickup",
|
||
"double_cab_chassis": "Dupla kabin alváz",
|
||
"single_cab_chassis": "Egyes kabin alváz",
|
||
"box_tail_lift": "Dobozos raktér emelővel",
|
||
"tipper": "Billenős plató",
|
||
"dropside": "Billenő oldalfalú plató",
|
||
"refrigerated_van": "Hűtött furgon",
|
||
"crew_cab_pickup": "Crew Cab Pickup",
|
||
"window_van": "Ablakos furgon",
|
||
"combi_van": "Combi furgon",
|
||
"platform_truck": "Platós teherautó",
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# LCV FEATURES / EXTRAS (categorized)
|
||
# Stored in individual_equipment.lcv_specs.features as a list of keys.
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
LCV_FEATURES: dict[str, dict[str, str]] = {
|
||
"technical": {
|
||
"asr": "ASR (Kipörgésgátló)",
|
||
"immobiliser": "Immobiliser",
|
||
},
|
||
"interior": {
|
||
"roll_bar": "Bukókeret",
|
||
"cargo_tie_down": "Rögzítő pontok a raktérben",
|
||
"auxiliary_heating": "Kiegészítő fűtés (Webasto)",
|
||
"leather_interior": "Bőr belső",
|
||
"partition_wall": "Válaszfal",
|
||
"seat_height_adjustment": "Ülésmagasság állítás",
|
||
"adjustable_steering_wheel": "Állítható kormány",
|
||
},
|
||
"exterior": {
|
||
"power_mirrors": "Elektromos tükör állítás",
|
||
},
|
||
"multimedia": {},
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# HGV-SPECIFIC DROPDOWNS (shown when vehicle_class == 'hgv')
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
HGV_TRANSMISSION_TYPES: dict[str, str] = {
|
||
"manual": "Manuális",
|
||
"manual_async": "Manuális (aszinkron)",
|
||
"semi_auto": "Félautomata",
|
||
"auto": "Automata",
|
||
"manual_split": "Manuális felezős",
|
||
"semi_auto_split": "Félautomata felezős",
|
||
"auto_split": "Automata felezős",
|
||
"cvt": "Fokozatmentes (CVT)",
|
||
}
|
||
|
||
HGV_PTO_TYPES: dict[str, str] = {
|
||
"front": "Első kihajtás (Front)",
|
||
"engine_mounted": "Motorra szerelt (Engine-mounted)",
|
||
"gearbox_mounted": "Váltóra szerelt (Gearbox-mounted)",
|
||
}
|
||
|
||
# ── HGV Body Types (unified with frontend i18n keys) ──
|
||
HGV_BODY_TYPES: dict[str, str] = {
|
||
# ── Alváz / Fülke típusok ──
|
||
"chassis": "Alváz (csak futómű)",
|
||
"chassis_cab": "Alvázas fülkés (Chassis Cab)",
|
||
"double_cab": "Duplakabinos (Double Cab)",
|
||
"triple_cab": "Triplakabinos (Triple Cab)",
|
||
"crew_cab": "Crew Cab",
|
||
"sleeper_cab": "Alvófülkés (Sleeper Cab)",
|
||
"day_cab": "Nappali fülke (Day Cab)",
|
||
"glider_kit": "Glider Kit (felújított)",
|
||
"semi_glazed": "Félig üvegezett (Semi-Glazed)",
|
||
"fully_glazed": "Körben üvegezett (Fully Glazed)",
|
||
|
||
# ── Billenős / Borítás ──
|
||
"tipper": "Billenős (Tipper)",
|
||
"tipper_3_way": "3 irányba billenő",
|
||
"tipper_double": "Kétoldalt billenő",
|
||
"tipper_trailer": "Billenős pótkocsi",
|
||
"tipper_mining": "Bányászati billenő (Mining Tipper)",
|
||
"tipper_grain": "Gabonás billenő (Grain Tipper)",
|
||
"dump_truck": "Billenős teherautó (Dump Truck)",
|
||
|
||
# ── Dobozos / Ponyvás ──
|
||
"box": "Dobozos (Box)",
|
||
"box_tail_lift": "Dobozos emelőhátfalas (Box with Tail Lift)",
|
||
"box_insulated": "Szigetelt dobozos (Insulated Box)",
|
||
"box_curtain_side": "Függönyoldalas dobozos",
|
||
"curtain_sider": "Ponyvás (Curtain Sider)",
|
||
"curtain_sider_roller": "Ponyvás rolós (Roller Curtain)",
|
||
"roller_shutter": "Redőnyös (Roller Shutter)",
|
||
|
||
# ── Platós ──
|
||
"flatbed": "Platós (Flatbed)",
|
||
"flatbed_stake": "Rakodóléces platós",
|
||
"flatbed_dropside": "Billenő oldalfalú platós",
|
||
"flatbed_crane": "Platós darugémes (Flatbed with Crane)",
|
||
"flatbed_tail_lift": "Platós emelőhátfalas (Flatbed with Tail Lift)",
|
||
|
||
# ── Hűtött ──
|
||
"refrigerated": "Hűtős (Refrigerated / Reefer)",
|
||
"refrigerated_trailer": "Hűtött pótkocsi",
|
||
|
||
# ── Tartályos ──
|
||
"tanker": "Tartályos (Tanker)",
|
||
"tanker_fuel": "Üzemanyag szállító (Fuel Tanker)",
|
||
"tanker_milk": "Tej szállító tartály",
|
||
"tanker_chemical": "Vegyi anyag szállító tartály",
|
||
"tanker_powder": "Poranyag szállító tartály",
|
||
"tanker_bitumen": "Bitumenes tartály (Bitumen Tanker)",
|
||
"tanker_gas": "Gázszállító tartály (Gas Tanker)",
|
||
"tanker_food": "Élelmiszer tartály (Food Tanker)",
|
||
"tanker_water": "Víztartály (Water Tanker)",
|
||
|
||
# ── Nyergesvontató / Vontató ──
|
||
"tractor_unit": "Nyergesvontató (Tractor Unit)",
|
||
"tractor_unit_4x2": "Vontató 4x2",
|
||
"tractor_unit_6x2": "Vontató 6x2",
|
||
"tractor_unit_6x4": "Vontató 6x4",
|
||
"tractor_unit_8x4": "Vontató 8x4",
|
||
|
||
# ── Félpótkocsi / Nyerges szerelvények ──
|
||
"semi_trailer": "Nyerges szerelvény (Semi-Trailer)",
|
||
"semi_trailer_curtain": "Függönyoldalas félpótkocsi",
|
||
"semi_trailer_box": "Dobozos félpótkocsi",
|
||
"semi_trailer_tipper": "Billenős félpótkocsi",
|
||
"semi_trailer_tanker": "Tartályos félpótkocsi",
|
||
"semi_trailer_flatbed": "Platós félpótkocsi",
|
||
"semi_trailer_low_loader": "Mélyágyas félpótkocsi",
|
||
"semi_trailer_car_transporter": "Autószállító félpótkocsi",
|
||
"semi_tipper": "Nyerges billenő (Semi-Tipper)",
|
||
"semi_refrigerated": "Nyerges hűtős (Semi-Reefer)",
|
||
"semi_tanker": "Nyerges tartály (Semi-Tanker)",
|
||
"semi_flatbed": "Nyerges platós (Semi-Flatbed)",
|
||
"semi_curtain": "Nyerges ponyvás (Semi-Curtain)",
|
||
"semi_log": "Nyerges rönkszállító (Semi-Timber)",
|
||
"semi_container": "Nyerges konténerszállító (Semi-Container)",
|
||
|
||
# ── Konténer / Csereszekrény ──
|
||
"container": "Konténer",
|
||
"container_carrier": "Konténerszállító (Container Carrier)",
|
||
"swap_body": "Cserélhető felépítmény",
|
||
"swap_body_bdf": "Csereszekrényes BDF (Swap Body)",
|
||
"hook_lift": "Emelőhorgos (Hook Lift)",
|
||
|
||
# ── Darus / Speciális ──
|
||
"crane": "Daru",
|
||
"crane_truck": "Darugémes teherautó (Crane Truck)",
|
||
"crane_trailer": "Darus pótkocsi",
|
||
"auto_crane": "Autódaru (Auto Crane)",
|
||
"ladder_truck": "Létrás (Ladder Truck)",
|
||
|
||
# ── Tűzoltó / Mentő ──
|
||
"fire_truck": "Tűzoltó (Fire Truck)",
|
||
"fire_truck_aerial": "Léptetőkosaras tűzoltó",
|
||
"ambulance": "Mentő (Ambulance)",
|
||
"hearse": "Halottas (Hearse)",
|
||
|
||
# ── Páncélozott / Pénzszállító ──
|
||
"armored": "Pénzszállító / páncélozott (Armored)",
|
||
"cash_transit": "Pénzszállító (Cash-in-Transit)",
|
||
|
||
# ── Állatszállító ──
|
||
"livestock": "Élőállat-szállító (Livestock)",
|
||
"poultry": "Baromfi szállító (Poultry)",
|
||
"horse_transporter": "Lószállító (Horse Transporter)",
|
||
|
||
# ── Járműszállító ──
|
||
"car_transporter": "Járműszállító (Car Transporter)",
|
||
"boat_transporter": "Hajószállító (Boat Transporter)",
|
||
"quad_transporter": "Quad / motorszállító (Quad Transporter)",
|
||
|
||
# ── Egyéb speciális ──
|
||
"mobile_shop": "Mozgóbolt (Mobile Shop)",
|
||
"workshop": "Műhelykocsi (Workshop)",
|
||
"tow_truck": "Mentő / Szállító (Wrecker / Recovery)",
|
||
"wrecker": "Mentő / szállító (Wrecker / Recovery)",
|
||
"street_sweeper": "Utcaseprő",
|
||
"refuse_truck": "Szemetes (Refuse Truck)",
|
||
"concrete_mixer": "Betonszállító (Concrete Mixer)",
|
||
"concrete_pump": "Betonszivattyú (Concrete Pump)",
|
||
"timber_truck": "Faszállító (Timber Truck)",
|
||
"log_trailer": "Farönk szállító pótkocsi (Log Trailer)",
|
||
"clothing_transporter": "Ruhaszállító (Clothing Transporter)",
|
||
"military": "Harci jármű (Military)",
|
||
|
||
# ── Egyéb ──
|
||
"other": "Egyéb (Other)",
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# HGV FEATURES / EXTRAS (categorized)
|
||
# Stored in individual_equipment.hgv_specs.features as a list of keys.
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
HGV_FEATURES: dict[str, dict[str, str]] = {
|
||
"technical_work": {
|
||
# ═══════════════════════════════════════════════
|
||
# 1. Hajtás & Fékrendszer (Drivetrain & Brakes)
|
||
# ═══════════════════════════════════════════════
|
||
"diff_lock": "Differenciálzár (Diff Lock)",
|
||
"diff_lock_front": "Első differenciálzár",
|
||
"diff_lock_rear": "Hátsó differenciálzár",
|
||
"diff_lock_center": "Központi differenciálzár",
|
||
"diff_lock_full": "Teljes differenciálzár",
|
||
"cross_axle_lock": "Kereszttengely differenciálzár",
|
||
"retarder": "Retarder (Lejtőfékező)",
|
||
"engine_brake": "Motorfék (Engine Brake)",
|
||
"exhaust_brake": "Kipufogófék (Exhaust Brake)",
|
||
"auxiliary_brake": "Segédfék",
|
||
"ebs": "EBS (Elektronikus fékrendszer)",
|
||
"esp": "ESP (Menetstabilizáló)",
|
||
"roll_stability": "Borulásgátló (RSP)",
|
||
"stability_control": "Stabilitás szabályzó (ESP)",
|
||
"hill_holder": "Hegymeneti tartó (Hill Holder)",
|
||
"hill_descent": "Lejtmenetvezérlő (Hill Descent)",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 2. Vezetéstámogató rendszerek (ADAS)
|
||
# ═══════════════════════════════════════════════
|
||
"lane_departure": "Sávelhagyás figyelő (LDWS)",
|
||
"lane_assist": "Sávtartó asszisztens",
|
||
"blind_spot": "Holtpont-figyelő (Blind Spot)",
|
||
"blind_spot_monitor": "Holtpont figyelő",
|
||
"collision_warning": "Ütközés figyelmeztető",
|
||
"emergency_brake": "Vészfék asszisztens (AEBS)",
|
||
"emergency_brake_assist": "Vészfék asszisztens",
|
||
"traffic_sign": "Táblafelismerő rendszer",
|
||
"traffic_sign_recognition": "Táblafelismerő",
|
||
"crosswind_assist": "Keresztszél asszisztens",
|
||
"tyre_pressure_monitor": "Guminyomás monitor (TPMS)",
|
||
"tire_pressure": "Guminyomás-figyelő (TPMS)",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 3. Flotta Adminisztráció & Mérés
|
||
# ═══════════════════════════════════════════════
|
||
"tachograph": "Menetíró (Tachograph)",
|
||
"digital_tachograph": "Digitális menetíró",
|
||
"smart_tachograph": "Smart Tachográf (G2V2)",
|
||
"fleet_management": "Flottamenedzsment rendszer",
|
||
"fuel_monitoring": "Üzemanyag monitorozás",
|
||
"fuel_card_reader": "Üzemanyagkártya-olvasó",
|
||
"onboard_scale": "Fedélzeti mérleg (Onboard Scale)",
|
||
"weigh_in_motion": "Menet közbeni mérlegelés",
|
||
"eco_driving": "Eco Driving asszisztens",
|
||
"load_securing": "Rakományrögzítő rendszer",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 4. Látás & Kamerák
|
||
# ═══════════════════════════════════════════════
|
||
"reverse_camera": "Tolatókamera",
|
||
"front_camera": "Első kamera",
|
||
"side_camera": "Oldalsó kamera",
|
||
"parking_sensors": "Parkolóérzékelők",
|
||
"front_parking_sensors": "Első parkolóérzékelők",
|
||
"rear_parking_sensors": "Hátsó parkolóérzékelők",
|
||
"side_parking_sensors": "Oldalsó parkolóérzékelők",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 5. Kötelező tartozékok & Egyéb
|
||
# ═══════════════════════════════════════════════
|
||
|
||
"wheel_chocks": "Ékek (kerékrögzítő)",
|
||
"roof_hatch": "Tetőablak",
|
||
"roof_ladder": "Tetőlétra",
|
||
"spare_wheel": "Pótkerék",
|
||
"snow_chains": "Hólánc",
|
||
"toolbox": "Szerszámos láda",
|
||
"work_lights": "Munkalámpák",
|
||
"beacon": "Figyelmeztető lámpa",
|
||
"reverse_alarm": "Tolatási hangjelző",
|
||
"side_underrun": "Oldalsó aláfutásgátló",
|
||
"rear_underrun": "Hátsó aláfutásgátló",
|
||
},
|
||
|
||
# ═══════════════════════════════════════════════════════════════
|
||
# CABIN (Fülke)
|
||
# ═══════════════════════════════════════════════════════════════
|
||
"cabin": {
|
||
# ═══════════════════════════════════════════════
|
||
# 1. Klíma & Fűtés
|
||
# ═══════════════════════════════════════════════
|
||
"air_conditioner": "Klíma (légkondícionáló)",
|
||
"automatic_ac": "Automata klíma",
|
||
"dual_zone_ac": "Kétzónás klíma",
|
||
"parking_heater": "Parkfűtés (Webasto/Eberspächer)",
|
||
"auxiliary_heater": "Kiegészítő fűtés",
|
||
"night_heater": "Éjszakai fűtés (állóhelyi fűtés)",
|
||
"engine_preheater": "Motor előmelegítő",
|
||
"roof_vent": "Tetőszellőző",
|
||
"power_vent": "Elektromos tetőszellőző",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 2. Alvás & Életvitel
|
||
# ═══════════════════════════════════════════════
|
||
"sleeper_cabin": "Hálófülke",
|
||
"single_bunk": "Egyágyas fekhely",
|
||
"double_bunk": "Kétágyas fekhely",
|
||
"upper_bunk": "Felső ágy",
|
||
"lower_bunk": "Alsó ágy",
|
||
"fridge": "Hűtőszekrény",
|
||
"freezer": "Fagyasztó",
|
||
"microwave": "Mikrohullámú sütő",
|
||
"coffee_machine": "Kávéfőző",
|
||
"water_heater": "Vízmelegítő",
|
||
"cabin_table": "Fülke asztal",
|
||
"curtain_set": "Függönykészlet",
|
||
"sun_visor": "Napszemüvegtartó / napellenző",
|
||
"cabin_lighting": "Fülke világítás",
|
||
"led_cabin_lighting": "LED fülke világítás",
|
||
"reading_light": "Olvasólámpa",
|
||
|
||
# ═══════════════════════════════════════════════
|
||
# 3. Kényelem & Ergonómia
|
||
# ═══════════════════════════════════════════════
|
||
"driver_seat_suspension": "Légrugós vezetőülés",
|
||
"passenger_seat": "Utasülés",
|
||
"passenger_seat_swivel": "Forgatható utasülés",
|
||
"seat_heating": "Ülésfűtés",
|
||
"seat_ventilation": "Ülésszellőzés",
|
||
"armrest": "Karfák",
|
||
"storage_box": "Tároló doboz",
|
||
"wardrobe": "Gardrób / ruhatároló",
|
||
"bed_extension": "Ágy kihúzó panel",
|
||
"privacy_curtain": "Adatvédő függöny",
|
||
"insulation_package": "Hang- és hőszigetelés csomag",
|
||
},
|
||
|
||
# ═══════════════════════════════════════════════════════════════
|
||
# MULTIMEDIA (Multimédia)
|
||
# ═══════════════════════════════════════════════════════════════
|
||
"multimedia": {
|
||
"cb_radio": "CB rádió",
|
||
"satellite_radio": "Műholdas rádió",
|
||
"digital_tv": "Digitális TV",
|
||
"dvb_t": "DVB-T (földi digitális TV)",
|
||
"dvb_s": "DVB-S (műholdas TV)",
|
||
},
|
||
}
|
||
|
||
|
||
# ═══════════════════════════════════════════════════════════════════
|
||
# HELPER FUNCTIONS
|
||
# ═══════════════════════════════════════════════════════════════════
|
||
|
||
|
||
def get_all_feature_keys() -> list[str]:
|
||
"""Return all possible feature keys across all vehicle types."""
|
||
keys: list[str] = []
|
||
for category in CAR_FEATURES.values():
|
||
keys.extend(category.keys())
|
||
for category in MOTORCYCLE_FEATURES.values():
|
||
keys.extend(category.keys())
|
||
for category in LCV_FEATURES.values():
|
||
keys.extend(category.keys())
|
||
for category in HGV_FEATURES.values():
|
||
keys.extend(category.keys())
|
||
return list(set(keys))
|
||
|
||
|
||
def get_feature_label(key: str, lang: str = "hu") -> str:
|
||
"""Look up a feature label by key across all vehicle type dictionaries."""
|
||
hu_labels: dict[str, dict[str, str]] = {
|
||
"car": CAR_FEATURES,
|
||
"motorcycle": MOTORCYCLE_FEATURES,
|
||
"lcv": LCV_FEATURES,
|
||
"hgv": HGV_FEATURES,
|
||
}
|
||
for vehicle_type, categories in hu_labels.items():
|
||
for category_key, features in categories.items():
|
||
if key in features:
|
||
return features[key]
|
||
return key
|
||
|
||
|
||
def get_features_by_category(
|
||
vehicle_type: str, category: str
|
||
) -> dict[str, str]:
|
||
"""Return features for a specific vehicle type and category."""
|
||
mapping: dict[str, dict[str, dict[str, str]]] = {
|
||
"car": CAR_FEATURES,
|
||
"motorcycle": MOTORCYCLE_FEATURES,
|
||
"lcv": LCV_FEATURES,
|
||
"hgv": HGV_FEATURES,
|
||
}
|
||
vehicle_features = mapping.get(vehicle_type, {})
|
||
return vehicle_features.get(category, {})
|
||
|
||
|
||
def get_motorcycle_feature_label(key: str) -> str:
|
||
"""Look up a motorcycle feature label by key."""
|
||
for category in MOTORCYCLE_FEATURES.values():
|
||
if key in category:
|
||
return category[key]
|
||
return key
|
||
|
||
|
||
def get_lcv_feature_label(key: str) -> str:
|
||
"""Look up an LCV feature label by key."""
|
||
for category in LCV_FEATURES.values():
|
||
if key in category:
|
||
return category[key]
|
||
return key
|
||
|
||
|
||
def get_hgv_feature_label(key: str) -> str:
|
||
"""Look up an HGV feature label by key."""
|
||
for category in HGV_FEATURES.values():
|
||
if key in category:
|
||
return category[key]
|
||
return key |