from pyspark.sql.types import StructType, StructField, StringType

HOLMAN_VEHICLES_SCHEMA = StructType([
    StructField("lesseeCode", StringType(), True),
    StructField("ariVehicleNumber", StringType(), True),
    StructField("clientVehicleNumber", StringType(), True),
    StructField("vin", StringType(), True),
    StructField("status", StringType(), True),
    StructField("assignedStatus", StringType(), True),
    StructField("division", StringType(), True),
    StructField("prefix", StringType(), True),
    StructField("clientData1", StringType(), True),
    StructField("clientData2", StringType(), True),
    StructField("clientData3", StringType(), True),
    StructField("clientData4", StringType(), True),
    StructField("clientData5", StringType(), True),
    StructField("clientData6", StringType(), True),
    StructField("clientData7", StringType(), True),
    StructField("driverClass", StringType(), True),
    StructField("exec", StringType(), True),
    StructField("auxData1", StringType(), True),
    StructField("auxData2", StringType(), True),
    StructField("auxData3", StringType(), True),
    StructField("auxData4", StringType(), True),
    StructField("auxData5", StringType(), True),
    StructField("auxData6", StringType(), True),
    StructField("auxData7", StringType(), True),
    StructField("auxData8", StringType(), True),
    StructField("auxData9", StringType(), True),
    StructField("auxData10", StringType(), True),
    StructField("auxData11", StringType(), True),
    StructField("auxData12", StringType(), True),
    StructField("auxData13", StringType(), True),
    StructField("auxData14", StringType(), True),
    StructField("auxDate1", StringType(), True),
    StructField("auxDate2", StringType(), True),
    StructField("auxDate3", StringType(), True),
    StructField("auxDate4", StringType(), True),
    StructField("firstName", StringType(), True),
    StructField("lastName", StringType(), True),
    StructField("email", StringType(), True),
    StructField("cellPhone", StringType(), True),
    StructField("workPhone", StringType(), True),
    StructField("workPhoneExtension", StringType(), True),
    StructField("homePhone", StringType(), True),
    StructField("addressLine1", StringType(), True),
    StructField("addressLine2", StringType(), True),
    StructField("addressLine3", StringType(), True),
    StructField("city", StringType(), True),
    StructField("stateProvince", StringType(), True),
    StructField("zipPostalCode", StringType(), True),
    StructField("modelYear", StringType(), True),
    StructField("makeVin", StringType(), True),
    StructField("makeClient", StringType(), True),
    StructField("modelVin", StringType(), True),
    StructField("modelClient", StringType(), True),
    StructField("engineType", StringType(), True),
    StructField("driveline", StringType(), True),
    StructField("series", StringType(), True),
    StructField("fuelType", StringType(), True),
    StructField("fuelTypeDescription", StringType(), True),
    StructField("fuelTypeCode", StringType(), True),
    StructField("fuelCapacity", StringType(), True),
    StructField("fuelMeasureType", StringType(), True),
    StructField("odometer", StringType(), True),
    StructField("odometerDate", StringType(), True),
    StructField("hourMeter", StringType(), True),
    StructField("hourMeterDate", StringType(), True),
    StructField("licensePlate", StringType(), True),
    StructField("tagStateProvince", StringType(), True),
    StructField("plateType", StringType(), True),
    StructField("renewalDate", StringType(), True),
    StructField("assetType", StringType(), True),
    StructField("assetSubType", StringType(), True),
    StructField("orderType", StringType(), True),
    StructField("deliveryDate", StringType(), True),
    StructField("onRoadDate", StringType(), True),
    StructField("outOfServiceDate", StringType(), True),
    StructField("soldDate", StringType(), True),
    StructField("soldAmount", StringType(), True),
    StructField("saleOdometer", StringType(), True),
    StructField("capCost", StringType(), True),
    StructField("gvwr", StringType(), True),
    StructField("gcwr", StringType(), True),
    StructField("curbWeight", StringType(), True),
    StructField("registeredVehicleWeight", StringType(), True),
    StructField("vendor", StringType(), True),
    StructField("leaseTerm", StringType(), True),
    StructField("monthsBilled", StringType(), True),
    StructField("monthsInService", StringType(), True),
    StructField("remainingBookValue", StringType(), True),
    StructField("telematicsDeviceId", StringType(), True),
    StructField("telematicsDeviceModel", StringType(), True),
    StructField("telematicsDeviceVendor", StringType(), True),
    StructField("orderReceivedDate", StringType(), True),
    StructField("orderPlacedDate", StringType(), True),
    StructField("scheduledProductionDate", StringType(), True),
    StructField("deliveryPaperMailed", StringType(), True),
    StructField("shipDate", StringType(), True),
    StructField("deliveredToDealerDate", StringType(), True),
    StructField("notifiedOfDelivery", StringType(), True),
    StructField("upfitInvoiceDate", StringType(), True),
    StructField("titleLocation", StringType(), True),
    StructField("titleOwnerLessor", StringType(), True)
])
