Skip to main content

lib/fakererer/vehicle/vi.ex

defmodule Fakererer.Vehicle.Vi do
  @moduledoc "Functions for generating vehicle data in Vietnamese."
  import Fakererer, only: [sampler: 2]

  @spec body_style() :: String.t()
  sampler(:body_style, [
    "Sedan", "SUV", "Hatchback", "Coupe", "Convertible",
    "Wagon", "Minivan", "Pickup", "Van", "Crossover",
    "Roadster", "Sport", "Luxury", "Compact", "Subcompact",
    "Mid-size", "Full-size", "Executive", "Supercar", "Hypercar"
  ])

  @spec drivetrain() :: String.t()
  sampler(:drivetrain, [
    "FWD", "RWD", "AWD", "4WD", "4x2", "4x4",
    "Front-wheel drive", "Rear-wheel drive", "All-wheel drive", "Four-wheel drive"
  ])

  @spec fuel_type() :: String.t()
  sampler(:fuel_type, [
    "Xăng", "Dầu diesel", "Điện", "Hybrid", "Plug-in Hybrid",
    "Hydrogen", "CNG", "LPG", "Ethanol", "Biodiesel",
    "Xăng sinh học", "Dầu diesel sinh học", "Điện năng lượng mặt trời",
    "Điện năng lượng gió", "Điện năng lượng thủy điện", "Điện năng lượng hạt nhân"
  ])

  @spec make() :: String.t()
  sampler(:make, [
    "Toyota", "Honda", "Ford", "Chevrolet", "BMW", "Mercedes-Benz",
    "Audi", "Volkswagen", "Nissan", "Hyundai", "Kia", "Mazda",
    "Subaru", "Lexus", "Infiniti", "Acura", "Mitsubishi", "Suzuki",
    "Volvo", "Jaguar", "Land Rover", "Porsche", "Ferrari", "Lamborghini",
    "Maserati", "Bentley", "Rolls-Royce", "Aston Martin", "McLaren",
    "Bugatti", "Pagani", "Koenigsegg", "Maybach", "Genesis", "Lincoln",
    "Cadillac", "Chrysler", "Dodge", "Jeep", "Ram", "GMC", "Buick",
    "Alfa Romeo", "Fiat", "Lancia", "Opel", "Peugeot", "Renault",
    "Citroën", "Skoda", "Seat", "Mini", "Smart", "Daihatsu", "Isuzu",
    "Hino", "Fuso", "UD", "Scania", "MAN", "DAF", "Iveco",
    "Tata", "Mahindra", "Maruti Suzuki", "Hindustan", "Premier",
    "SsangYong", "Daewoo", "Proton", "Perodua", "VinFast", "THACO",
    "SAMCO", "Hoa Mai", "Truong Hai", "Thanh Cong", "Vietnam Motors"
  ])

  @spec make_and_model() :: String.t()
  def make_and_model do
    "#{make()} #{model()}"
  end

  @spec model() :: String.t()
  sampler(:model, [
    "Camry", "Corolla", "RAV4", "Highlander", "Prius", "Yaris",
    "Civic", "Accord", "CR-V", "Pilot", "Fit", "HR-V",
    "F-150", "Mustang", "Explorer", "Escape", "Focus", "Fusion",
    "Silverado", "Equinox", "Tahoe", "Malibu", "Traverse", "Blazer",
    "3 Series", "5 Series", "7 Series", "X3", "X5", "X7",
    "C-Class", "E-Class", "S-Class", "GLC", "GLE", "GLS",
    "A3", "A4", "A6", "Q3", "Q5", "Q7",
    "Golf", "Passat", "Tiguan", "Atlas", "Jetta", "Arteon",
    "Altima", "Sentra", "Rogue", "Murano", "Pathfinder", "Frontier",
    "Elantra", "Sonata", "Tucson", "Santa Fe", "Kona", "Palisade",
    "Forte", "Optima", "Sorento", "Sportage", "Telluride", "Soul",
    "Mazda3", "Mazda6", "CX-5", "CX-9", "MX-5", "CX-30",
    "Impreza", "Outback", "Forester", "Crosstrek", "Ascent", "Legacy",
    "ES", "IS", "GS", "LS", "NX", "RX", "GX", "LX",
    "Q50", "Q60", "Q70", "QX50", "QX60", "QX80",
    "ILX", "TLX", "RLX", "RDX", "MDX", "NSX",
    "Outlander", "Eclipse Cross", "ASX", "Pajero", "Triton", "Xpander",
    "Swift", "Vitara", "Jimny", "Celerio", "Ertiga", "Baleno",
    "S60", "S90", "V60", "V90", "XC40", "XC60", "XC90",
    "F-PACE", "E-PACE", "I-PACE", "XE", "XF", "XJ", "F-TYPE",
    "Range Rover", "Range Rover Sport", "Range Rover Evoque", "Range Rover Velar",
    "Discovery", "Discovery Sport", "Defender",
    "911", "Cayenne", "Macan", "Panamera", "Taycan", "Cayman", "Boxster",
    "488", "F8", "SF90", "Roma", "Portofino", "812", "GTC4Lusso",
    "Huracan", "Urus", "Aventador", "Gallardo", "Murcielago",
    "Ghibli", "Quattroporte", "Levante", "GranTurismo", "GranCabrio",
    "Continental", "Flying Spur", "Bentayga", "Mulsanne",
    "Ghost", "Wraith", "Dawn", "Phantom", "Cullinan",
    "DB11", "Vantage", "DBS", "Rapide", "Vanquish",
    "720S", "570S", "600LT", "GT", "Artura", "Speedtail",
    "Chiron", "Veyron", "Divo", "Centodieci", "Bolide",
    "Zonda", "Huayra", "Imola", "Codalunga",
    "Jesko", "Gemera", "Regera", "Agera", "One:1",
    "Maybach S-Class", "Maybach GLS",
    "G70", "G80", "G90", "GV70", "GV80",
    "Navigator", "Aviator", "Corsair", "Nautilus", "Continental",
    "Escalade", "XT4", "XT5", "XT6", "CT4", "CT5",
    "Pacifica", "Voyager", "300",
    "Challenger", "Charger", "Durango", "Journey",
    "Wrangler", "Cherokee", "Grand Cherokee", "Compass", "Renegade", "Gladiator",
    "1500", "2500", "3500", "ProMaster", "ProMaster City",
    "Sierra", "Yukon", "Acadia", "Terrain", "Canyon", "Canyon",
    "Enclave", "Encore", "Envision", "LaCrosse", "Regal",
    "Giulia", "Stelvio", "Tonale",
    "500", "500X", "500L", "Panda", "Tipo", "Punto",
    "Ypsilon", "Delta", "Thema", "Musa", "Muso",
    "Corsa", "Astra", "Insignia", "Mokka", "Crossland", "Grandland",
    "208", "308", "508", "2008", "3008", "5008",
    "Clio", "Megane", "Captur", "Kadjar", "Arkana", "Austral",
    "C3", "C4", "C5 Aircross", "Berlingo", "Jumpy", "Jumper",
    "Octavia", "Superb", "Kodiaq", "Karoq", "Kamiq", "Scala",
    "Leon", "Ibiza", "Ateca", "Arona", "Tarraco", "Alhambra",
    "Cooper", "Countryman", "Clubman", "Electric",
    "Fortwo", "Forfour", "EQ",
    "Charade", "Terios", "Sirion", "Copen", "Mira", "Move",
    "D-Max", "MU-X", "Trooper", "Panther", "Gemini", "Bighorn",
    "Profia", "Ranger", "Dutro", "Elf", "Forward", "Giga",
    "Quon", "Aero", "Flighter", "Space Arrow", "Space Runner",
    "Croner", "FV", "FS", "FK", "FM", "FP",
    "R-series", "P-series", "G-series", "S-series", "XT",
    "TGX", "TGS", "TGM", "TGL", "Terrain",
    "XF", "XG", "XG+", "CF", "LF", "XD",
    "Eurocargo", "Stralis", "Trakker", "Way", "Daily",
    "Indica", "Indigo", "Manza", "Vista", "Bolt", "Zest",
    "XUV500", "XUV700", "Scorpio", "Thar", "XUV300", "Bolero",
    "Swift", "Dzire", "Baleno", "Vitara Brezza", "Ertiga", "Ciaz",
    "Ambassador", "Padmini", "Rio", "Santo", "Sumo", "Indica",
    "Tivoli", "Korando", "Rexton", "Musso", "Actyon", "Kyron",
    "Saga", "Persona", "Perdana", "Exora", "Iriz", "X50", "X70",
    "Myvi", "Axia", "Bezza", "Aruz", "Alza", "X50",
    "VF e34", "VF e35", "VF e36", "VF 8", "VF 9", "VF 6", "VF 7",
    "Kia Cerato", "Kia Seltos", "Kia Sonet", "Kia Carnival", "Kia EV6",
    "Mazda CX-5", "Mazda CX-8", "Mazda CX-30", "Mazda3", "Mazda6",
    "Honda City", "Honda BR-V", "Honda HR-V", "Honda CR-V", "Honda Civic",
    "Toyota Vios", "Toyota Innova", "Toyota Fortuner", "Toyota Hilux", "Toyota Yaris Cross",
    "Hyundai Accent", "Hyundai Elantra", "Hyundai Tucson", "Hyundai Santa Fe", "Hyundai Creta",
    "Ford Ranger", "Ford Everest", "Ford Territory", "Ford EcoSport", "Ford Focus",
    "Mitsubishi Xpander", "Mitsubishi Outlander", "Mitsubishi Triton", "Mitsubishi Attrage", "Mitsubishi Pajero Sport",
    "Nissan Navara", "Nissan Terra", "Nissan Almera", "Nissan Kicks", "Nissan X-Trail",
    "Suzuki Ertiga", "Suzuki XL7", "Suzuki Swift", "Suzuki Vitara", "Suzuki Ciaz",
    "Isuzu D-Max", "Isuzu MU-X", "Isuzu MU-7", "Isuzu Trooper", "Isuzu Panther",
    "Hino 300", "Hino 500", "Hino 700", "Hino Ranger", "Hino Dutro"
  ])

  @spec option() :: String.t()
  sampler(:option, [
    "Điều hòa không khí", "Radio", "CD", "USB", "Bluetooth",
    "GPS", "Camera lùi", "Cảm biến đỗ xe", "Sạc không dây",
    "Cửa sổ trời", "Ghế da", "Ghế sưởi", "Ghế thông gió",
    "Vô lăng tích hợp", "Cruise control", "Phanh ABS", "Túi khí",
    "Hệ thống an toàn", "Khóa trẻ em", "Bảo vệ chống trộm",
    "Hệ thống giải trí", "Màn hình cảm ứng", "Kết nối Apple CarPlay",
    "Kết nối Android Auto", "Sạc nhanh", "Sạc chậm", "Sạc không dây",
    "Hệ thống âm thanh cao cấp", "Loa subwoofer", "Amplifier",
    "Hệ thống chiếu sáng LED", "Đèn pha tự động", "Đèn hậu LED",
    "Gương chiếu hậu chỉnh điện", "Gương chiếu hậu gập điện",
    "Gương chiếu hậu sưởi", "Gương chiếu hậu chống chói",
    "Cốp điện", "Cốp cảm ứng", "Cốp mở bằng chân",
    "Mâm hợp kim", "Mâm nhôm", "Mâm thép", "Mâm carbon",
    "Lốp dự phòng", "Lốp không săm", "Lốp mùa đông", "Lốp mùa hè",
    "Bộ dụng cụ sửa chữa", "Bộ dụng cụ cứu hộ", "Bộ dụng cụ phòng cháy",
    "Bộ dụng cụ vệ sinh", "Bộ dụng cụ bảo dưỡng", "Bộ dụng cụ kiểm tra",
    "Bộ dụng cụ lắp đặt", "Bộ dụng cụ tháo rời", "Bộ dụng cụ điều chỉnh",
    "Bộ dụng cụ đo lường", "Bộ dụng cụ kiểm soát", "Bộ dụng cụ giám sát"
  ])

  @spec options() :: String.t()
  def options, do: option()

  @spec options(non_neg_integer()) :: list(String.t())
  def options(number) do
    Fakererer.Util.list(number, &option/0)
  end

  @spec standard_spec() :: String.t()
  sampler(:standard_spec, [
    "Hệ thống phanh ABS", "Hệ thống cân bằng điện tử", "Hệ thống kiểm soát lực kéo",
    "Hệ thống hỗ trợ khởi hè", "Hệ thống cảm biến áp suất lốp",
    "Hệ thống giám sát điểm mù", "Hệ thống cảnh báo chuyển làn",
    "Hệ thống hỗ trợ đỗ xe", "Hệ thống nhận diện biển báo",
    "Hệ thống cảnh báo va chạm", "Hệ thống phanh tự động khẩn cấp",
    "Hệ thống hỗ trợ lái", "Hệ thống kiểm soát tốc độ",
    "Hệ thống định vị", "Hệ thống giải trí", "Hệ thống kết nối",
    "Hệ thống chiếu sáng", "Hệ thống âm thanh", "Hệ thống điều hòa",
    "Hệ thống sưởi", "Hệ thống thông gió", "Hệ thống lọc không khí",
    "Hệ thống khử mùi", "Hệ thống diệt khuẩn", "Hệ thống làm mát",
    "Hệ thống sưởi ghế", "Hệ thống sưởi vô lăng", "Hệ thống sưởi kính",
    "Hệ thống gương chiếu hậu", "Hệ thống cửa", "Hệ thống khóa",
    "Hệ thống cửa sổ", "Hệ thống cửa sổ trời", "Hệ thống nóc",
    "Hệ thống gầm", "Hệ thống treo", "Hệ thống lái", "Hệ thống phanh",
    "Hệ thống truyền động", "Hệ thống động cơ", "Hệ thống nhiên liệu",
    "Hệ thống xả", "Hệ thống làm mát", "Hệ thống bôi trơn", "Hệ thống điện"
  ])

  @spec transmission() :: String.t()
  sampler(:transmission, [
    "Số tự động", "Số sàn", "Số hai cấp", "CVT", "DCT",
    "Số tự động 6 cấp", "Số tự động 7 cấp", "Số tự động 8 cấp",
    "Số tự động 9 cấp", "Số tự động 10 cấp", "Số sàn 5 cấp",
    "Số sàn 6 cấp", "Số sàn 7 cấp", "Số hai cấp 7 cấp",
    "Số hai cấp 8 cấp", "CVT vô cấp", "DCT 7 cấp", "DCT 8 cấp"
  ])
end