@fleetbase/fleetops-engine 0.6.24 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/DRIVER_SCHEDULING.md +186 -0
  2. package/addon/components/driver/schedule.hbs +100 -0
  3. package/addon/components/driver/schedule.js +267 -0
  4. package/addon/components/order/kanban-card.hbs +2 -2
  5. package/addon/components/vehicle/details.hbs +594 -4
  6. package/addon/components/vehicle/form.hbs +467 -41
  7. package/addon/controllers/analytics/reports/index.js +3 -2
  8. package/addon/controllers/connectivity/devices/index.js +3 -3
  9. package/addon/controllers/connectivity/events/index.js +3 -2
  10. package/addon/controllers/connectivity/sensors/index.js +3 -5
  11. package/addon/controllers/connectivity/telematics/index.js +3 -1
  12. package/addon/controllers/maintenance/equipment/index.js +4 -4
  13. package/addon/controllers/maintenance/parts/index.js +4 -4
  14. package/addon/controllers/maintenance/work-orders/index.js +4 -4
  15. package/addon/controllers/management/contacts/customers.js +12 -10
  16. package/addon/controllers/management/contacts/index.js +3 -10
  17. package/addon/controllers/management/drivers/index/details.js +26 -13
  18. package/addon/controllers/management/drivers/index.js +4 -16
  19. package/addon/controllers/management/fleets/index.js +3 -13
  20. package/addon/controllers/management/fuel-reports/index.js +3 -10
  21. package/addon/controllers/management/issues/index.js +3 -12
  22. package/addon/controllers/management/places/index.js +4 -12
  23. package/addon/controllers/management/vehicles/index.js +3 -13
  24. package/addon/controllers/management/vendors/index.js +3 -13
  25. package/addon/controllers/operations/orders/index.js +5 -22
  26. package/addon/controllers/operations/scheduler/index.js +195 -6
  27. package/addon/controllers/operations/service-rates/index.js +34 -34
  28. package/addon/controllers/settings/payments/index.js +0 -6
  29. package/addon/routes.js +1 -0
  30. package/addon/services/driver-scheduling.js +171 -0
  31. package/addon/services/leaflet-layer-visibility-manager.js +4 -1
  32. package/addon/services/service-rate-actions.js +5 -1
  33. package/addon/templates/management/drivers/index/details/positions.hbs +1 -2
  34. package/addon/templates/management/drivers/index/details/schedule.hbs +1 -2
  35. package/addon/templates/operations/scheduler/index.hbs +48 -10
  36. package/addon/utils/fleet-ops-options.js +86 -0
  37. package/app/services/driver-scheduling.js +1 -0
  38. package/composer.json +1 -1
  39. package/extension.json +1 -1
  40. package/package.json +3 -3
  41. package/server/migrations/2025_11_17_033648_add_additional_columns_to_vehicles_table.php +142 -0
  42. package/server/src/Constraints/HOSConstraint.php +244 -0
  43. package/server/src/Http/Controllers/Api/v1/DriverController.php +14 -4
  44. package/server/src/Http/Controllers/Api/v1/OrderController.php +1 -1
  45. package/server/src/Http/Controllers/Api/v1/VehicleController.php +2 -2
  46. package/server/src/Http/Controllers/Internal/v1/OrderController.php +8 -3
  47. package/server/src/Http/Resources/v1/Driver.php +1 -1
  48. package/server/src/Http/Resources/v1/Vehicle.php +197 -19
  49. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +211 -28
  50. package/server/src/Models/Driver.php +15 -8
  51. package/server/src/Models/Vehicle.php +101 -15
@@ -120,30 +120,78 @@ class Vehicle extends Model
120
120
  'speed',
121
121
  'heading',
122
122
  'altitude',
123
+ // Odometer & measurement
123
124
  'odometer',
124
125
  'odometer_unit',
126
+ 'odometer_at_purchase',
127
+ 'measurement_system',
125
128
  'fuel_type',
126
129
  'fuel_volume_unit',
130
+ // Body / usage
127
131
  'trim',
128
132
  'transmission',
129
- 'measurement_system',
130
133
  'body_type',
131
134
  'body_sub_type',
132
135
  'usage_type',
133
136
  'ownership_type',
134
137
  'type',
135
138
  'class',
139
+ // Identifiers
136
140
  'plate_number',
137
141
  'call_sign',
138
142
  'serial_number',
143
+ 'vin',
144
+ 'vin_data',
145
+ // Financing
139
146
  'financing_status',
147
+ 'loan_number_of_payments',
148
+ 'loan_first_payment',
149
+ 'loan_amount',
150
+ // Lifecycle
151
+ 'estimated_service_life_distance_unit',
152
+ 'estimated_service_life_distance',
153
+ 'estimated_service_life_months',
154
+ // Capacity / dimensions
155
+ 'cargo_volume',
156
+ 'passenger_volume',
157
+ 'interior_volume',
158
+ 'weight',
159
+ 'width',
160
+ 'length',
161
+ 'height',
162
+ 'towing_capacity',
163
+ 'payload_capacity',
164
+ 'seating_capacity',
165
+ 'ground_clearance',
166
+ 'bed_length',
167
+ 'fuel_capacity',
168
+ // Regulatory / compliance
169
+ 'emission_standard',
170
+ 'dpf_equipped',
171
+ 'scr_equipped',
172
+ 'gvwr',
173
+ 'gcwr',
174
+ // Engine specifications
175
+ 'engine_number',
176
+ 'engine_model',
177
+ 'engine_make',
178
+ 'engine_family',
179
+ 'engine_configuration',
180
+ 'engine_displacement',
181
+ 'engine_size',
182
+ 'horsepower',
183
+ 'horsepower_rpm',
184
+ 'torque',
185
+ 'torque_rpm',
186
+ 'number_of_cylinders',
187
+ 'cylinder_arrangement',
188
+ // Financial values
140
189
  'currency',
141
190
  'insurance_value',
142
191
  'depreciation_rate',
143
192
  'current_value',
144
193
  'acquisition_cost',
145
- 'vin',
146
- 'vin_data',
194
+ // Other fields
147
195
  'specs',
148
196
  'details',
149
197
  'notes',
@@ -195,18 +243,56 @@ class Vehicle extends Model
195
243
  * @var array
196
244
  */
197
245
  protected $casts = [
198
- 'current_value' => Money::class,
199
- 'insurance_value' => Money::class,
200
- 'acquisition_cost' => Money::class,
201
- 'location' => Point::class,
202
- 'meta' => Json::class,
203
- 'telematics' => Json::class,
204
- 'specs' => Json::class,
205
- 'details' => Json::class,
206
- 'vin_data' => Json::class,
207
- 'online' => 'boolean',
208
- 'purchased_at' => 'datetime',
209
- 'lease_expires_at' => 'datetime',
246
+ // Money values
247
+ 'current_value' => Money::class,
248
+ 'insurance_value' => Money::class,
249
+ 'acquisition_cost' => Money::class,
250
+ // Spatial
251
+ 'location' => Point::class,
252
+ // JSON
253
+ 'meta' => Json::class,
254
+ 'telematics' => Json::class,
255
+ 'specs' => Json::class,
256
+ 'details' => Json::class,
257
+ 'vin_data' => Json::class,
258
+ // Dates
259
+ 'purchased_at' => 'datetime',
260
+ 'lease_expires_at' => 'datetime',
261
+ 'loan_first_payment' => 'date',
262
+ // Booleans
263
+ 'online' => 'boolean',
264
+ 'dpf_equipped' => 'boolean',
265
+ 'scr_equipped' => 'boolean',
266
+ // Integers
267
+ 'odometer' => 'integer',
268
+ 'odometer_at_purchase' => 'integer',
269
+ 'loan_number_of_payments' => 'integer',
270
+ 'estimated_service_life_distance' => 'integer',
271
+ 'estimated_service_life_months' => 'integer',
272
+ 'number_of_cylinders' => 'integer',
273
+ 'horsepower_rpm' => 'integer',
274
+ 'torque_rpm' => 'integer',
275
+ 'seating_capacity' => 'integer',
276
+ // Decimals
277
+ 'loan_amount' => 'decimal:2',
278
+ 'cargo_volume' => 'decimal:2',
279
+ 'passenger_volume' => 'decimal:2',
280
+ 'interior_volume' => 'decimal:2',
281
+ 'weight' => 'decimal:2',
282
+ 'width' => 'decimal:2',
283
+ 'length' => 'decimal:2',
284
+ 'height' => 'decimal:2',
285
+ 'towing_capacity' => 'decimal:2',
286
+ 'payload_capacity' => 'decimal:2',
287
+ 'ground_clearance' => 'decimal:2',
288
+ 'bed_length' => 'decimal:2',
289
+ 'fuel_capacity' => 'decimal:2',
290
+ 'engine_displacement' => 'decimal:2',
291
+ 'engine_size' => 'decimal:2',
292
+ 'horsepower' => 'decimal:2',
293
+ 'torque' => 'decimal:2',
294
+ 'gvwr' => 'decimal:2',
295
+ 'gcwr' => 'decimal:2',
210
296
  ];
211
297
 
212
298
  public function photo(): BelongsTo