public function getFleetData($vehicle_id = null)
 {
     $vehicles = Vehicle::where('company_id', Auth::user()['company_id']);
     if (!empty($vehicle_id)) {
         $vehicles = $vehicles->where('id', $vehicle_id);
     }
     $vehicles = $vehicles->get();
     $tireData = [];
     $modelMaps = [];
     $gpsData = [];
     if (!empty($vehicles)) {
         $tires = PartRepositoryEloquent::getTiresVehicle();
         $fleetGpsData = $this->getFleetGpsData();
         $tireAndSensorData = $this->getFleetTireAndSensorData();
         foreach ($vehicles as $vehicle) {
             $modelMaps[$vehicle->model_vehicle_id] = $vehicle->model->map;
             $tireData[$vehicle->id] = [];
             $tiresPositions = PartRepositoryEloquent::getTiresPositions($tires, $vehicle->id);
             if (!empty($tiresPositions)) {
                 foreach ($tiresPositions as $position => $filled) {
                     if ($filled) {
                         if (!empty($tireAndSensorData[$vehicle->id][$position])) {
                             $tireData[$vehicle->id][$position] = $tireAndSensorData[$vehicle->id][$position];
                         } else {
                             $tireData[$vehicle->id][$position] = $tireAndSensorData[0];
                         }
                     }
                 }
             }
             $gpsData[$vehicle->id] = [];
             if (!empty($fleetGpsData[$vehicle->id])) {
                 $gpsData[$vehicle->id] = $fleetGpsData[$vehicle->id];
             }
         }
     }
     return ['vehicles' => $vehicles, 'tireData' => $tireData, 'gpsData' => $gpsData, 'modelMaps' => $modelMaps];
 }