""" 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