@fleetbase/fleetops-engine 0.3.6 → 0.3.8

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 (74) hide show
  1. package/addon/components/admin/navigator-app.hbs +6 -3
  2. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +5 -1
  3. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +98 -1
  4. package/addon/components/layout/fleet-ops-sidebar.hbs +5 -1
  5. package/addon/components/layout/fleet-ops-sidebar.js +1 -0
  6. package/addon/controllers/management/drivers/index/edit.js +0 -26
  7. package/addon/engine.js +4 -4
  8. package/addon/styles/fleetops-engine.css +17 -0
  9. package/addon/templates/operations/service-rates/index/new.hbs +1 -1
  10. package/composer.json +2 -2
  11. package/extension.json +1 -1
  12. package/package.json +1 -1
  13. package/server/config/fleetops.php +4 -1
  14. package/server/src/Casts/MultiPolygon.php +14 -3
  15. package/server/src/Casts/Point.php +12 -2
  16. package/server/src/Casts/Polygon.php +19 -4
  17. package/server/src/Http/Controllers/Api/v1/DriverController.php +34 -18
  18. package/server/src/Http/Controllers/Api/v1/EntityController.php +36 -1
  19. package/server/src/Http/Controllers/Api/v1/LabelController.php +2 -2
  20. package/server/src/Http/Controllers/Api/v1/OrderController.php +139 -59
  21. package/server/src/Http/Controllers/Api/v1/PayloadController.php +20 -12
  22. package/server/src/Http/Controllers/Api/v1/PlaceController.php +25 -3
  23. package/server/src/Http/Controllers/Api/v1/PurchaseRateController.php +1 -1
  24. package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +71 -3
  25. package/server/src/Http/Controllers/Api/v1/ServiceQuoteController.php +1 -1
  26. package/server/src/Http/Controllers/Api/v1/ServiceRateController.php +3 -2
  27. package/server/src/Http/Controllers/Api/v1/TrackingNumberController.php +2 -2
  28. package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +2 -2
  29. package/server/src/Http/Controllers/Api/v1/VehicleController.php +22 -2
  30. package/server/src/Http/Controllers/Api/v1/ZoneController.php +59 -3
  31. package/server/src/Http/Controllers/Internal/v1/DriverController.php +148 -0
  32. package/server/src/Http/Controllers/Internal/v1/NavigatorController.php +38 -0
  33. package/server/src/Http/Controllers/Internal/v1/OrderController.php +11 -1
  34. package/server/src/Http/Filter/TrackingStatusFilter.php +10 -0
  35. package/server/src/Http/Requests/CancelOrderRequest.php +1 -2
  36. package/server/src/Http/Requests/CreateContactRequest.php +5 -4
  37. package/server/src/Http/Requests/CreateDriverRequest.php +13 -11
  38. package/server/src/Http/Requests/CreateEntityRequest.php +7 -4
  39. package/server/src/Http/Requests/CreateOrderRequest.php +2 -2
  40. package/server/src/Http/Requests/CreatePayloadRequest.php +1 -1
  41. package/server/src/Http/Requests/CreatePlaceRequest.php +46 -4
  42. package/server/src/Http/Requests/CreatePurchaseRateRequest.php +3 -2
  43. package/server/src/Http/Requests/CreateServiceAreaRequest.php +24 -4
  44. package/server/src/Http/Requests/CreateServiceRateRequest.php +22 -21
  45. package/server/src/Http/Requests/CreateTrackingStatusRequest.php +9 -8
  46. package/server/src/Http/Requests/CreateVehicleRequest.php +6 -4
  47. package/server/src/Http/Requests/CreateZoneRequest.php +24 -5
  48. package/server/src/Http/Requests/QueryServiceQuotesRequest.php +11 -10
  49. package/server/src/Http/Requests/ScheduleOrderRequest.php +32 -0
  50. package/server/src/Http/Requests/UpdateContactRequest.php +0 -13
  51. package/server/src/Http/Requests/UpdateServiceAreaRequest.php +1 -23
  52. package/server/src/Http/Requests/UpdateServiceQuoteRequest.php +1 -23
  53. package/server/src/Http/Requests/UpdateServiceRateRequest.php +1 -23
  54. package/server/src/Http/Requests/UpdateTrackingStatusRequest.php +1 -26
  55. package/server/src/Http/Resources/v1/DeletedResource.php +2 -9
  56. package/server/src/Http/Resources/v1/Entity.php +47 -44
  57. package/server/src/Http/Resources/v1/Order.php +1 -1
  58. package/server/src/Http/Resources/v1/ServiceArea.php +2 -2
  59. package/server/src/Http/Resources/v1/Vehicle.php +1 -3
  60. package/server/src/Http/Resources/v1/Zone.php +2 -4
  61. package/server/src/Models/Entity.php +99 -3
  62. package/server/src/Models/Order.php +75 -7
  63. package/server/src/Models/Payload.php +104 -33
  64. package/server/src/Models/Place.php +56 -17
  65. package/server/src/Models/ServiceArea.php +285 -18
  66. package/server/src/Models/ServiceRate.php +10 -6
  67. package/server/src/Models/TrackingNumber.php +18 -24
  68. package/server/src/Models/TrackingStatus.php +2 -6
  69. package/server/src/Models/Vehicle.php +2 -2
  70. package/server/src/Models/Waypoint.php +0 -10
  71. package/server/src/Models/Zone.php +132 -5
  72. package/server/src/Support/Flow.php +17 -3
  73. package/server/src/Support/Utils.php +143 -9
  74. package/server/src/routes.php +58 -3
@@ -2,6 +2,7 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
+ use Fleetbase\FleetOps\Rules\ResolvablePoint;
5
6
  use Fleetbase\Http\Requests\FleetbaseRequest;
6
7
  use Illuminate\Validation\Rule;
7
8
 
@@ -14,9 +15,7 @@ class CreateServiceAreaRequest extends FleetbaseRequest
14
15
  */
15
16
  public function authorize()
16
17
  {
17
- return request()
18
- ->session()
19
- ->has('api_credential');
18
+ return request()->session()->has('api_credential');
20
19
  }
21
20
 
22
21
  /**
@@ -28,8 +27,29 @@ class CreateServiceAreaRequest extends FleetbaseRequest
28
27
  {
29
28
  return [
30
29
  'name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
31
- 'country' => 'required',
30
+ 'country' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
32
31
  'status' => 'in:active,inactive',
32
+ 'border' => ['nullable', Rule::requiredIf(function () {
33
+ $isCreating = $this->isMethod('POST');
34
+ $hasCoordiantes = $this->filled('latitude') && $this->filled('longitude');
35
+ $hasLocation = $this->filled('location');
36
+
37
+ // if creating then it's required
38
+ if ($isCreating) {
39
+ // if either has coordinated or location then it's not required
40
+ if ($hasCoordiantes || $hasLocation) {
41
+ return false;
42
+ }
43
+
44
+ return true;
45
+ }
46
+
47
+ return false;
48
+ })],
49
+ 'parent' => ['nullable', 'exists:service_areas,public_id'],
50
+ 'location' => ['nullable', new ResolvablePoint()],
51
+ 'latitude' => ['nullable', 'required_with:longitude'],
52
+ 'longitude' => ['nullable', 'required_with:latitude'],
33
53
  ];
34
54
  }
35
55
  }
@@ -29,28 +29,29 @@ class CreateServiceRateRequest extends FleetbaseRequest
29
29
  return [
30
30
  'service_name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
31
31
  'service_type' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
32
- 'service_area' => 'exists:service_areas,public_id',
33
- 'zone' => 'exists:zones,public_id',
34
- 'rate_calculation_method' => 'required|string|in:per_km,fixed_meter,algo',
35
- 'currency' => 'required|size:3',
36
- 'base_fee' => 'integer',
37
- 'per_km_flat_rate_fee' => [Rule::requiredIf($this->input(['rate_calculation_method']) === 'rate_calculation_method'), 'integer'],
38
- 'meter_fees' => [Rule::requiredIf($this->input(['rate_calculation_method']) === 'fixed_meter'), 'array'],
39
- 'meter_fees.*.distance' => 'integer',
40
- 'meter_fees.*.fee' => 'integer',
41
- 'algorithm' => [Rule::requiredIf($this->input(['rate_calculation_method']) === 'algo'), new ComputableAlgo(), 'string'],
42
- 'has_cod_fee' => 'boolean',
32
+ 'service_area' => [Rule::exists('service_areas', 'public_id')->whereNull('deleted_at')],
33
+ 'zone' => [Rule::exists('zones', 'public_id')->whereNull('deleted_at')],
34
+ 'rate_calculation_method' => [Rule::requiredIf($this->isMethod('POST')), 'string', 'in:fixed_meter,per_meter,per_drop,algo'],
35
+ 'currency' => ['required', 'size:3'],
36
+ 'base_fee' => ['numeric'],
37
+ 'per_meter_unit' => ['required_if:rate_calculation_method,per_meter', 'string', 'in:km,m'],
38
+ 'per_meter_flat_rate_fee' => ['required_if:rate_calculation_method,per_meter', 'numeric'],
39
+ 'meter_fees' => ['required_if:rate_calculation_method,fixed_meter', 'array'],
40
+ 'meter_fees.*.distance' => ['numeric'],
41
+ 'meter_fees.*.fee' => ['numeric'],
42
+ 'algorithm' => ['required_if:rate_calculation_method,algo', new ComputableAlgo(), 'string'],
43
+ 'has_cod_fee' => ['boolean'],
43
44
  'cod_calculation_method' => [Rule::requiredIf(Utils::isTrue($this->input(['has_cod_fee']))), 'in:percentage,flat'],
44
- 'cod_flat_fee' => [Rule::requiredIf($this->input(['cod_calculation_method']) === 'flat'), 'integer'],
45
- 'cod_percent' => [Rule::requiredIf($this->input(['cod_calculation_method']) === 'percentage'), 'integer'],
46
- 'has_peak_hours_fee' => 'boolean',
47
- 'peak_hours_calculation_method' => [Rule::requiredIf(Utils::isTrue($this->input(['has_peak_hours']))), 'in:percentage,flat'],
48
- 'peak_hours_flat_fee' => [Rule::requiredIf($this->input(['peak_hours_calculation_method']) === 'flat'), 'integer'],
49
- 'peak_hours_percent' => [Rule::requiredIf($this->input(['peak_hours_calculation_method']) === 'percentage'), 'integer'],
50
- 'peak_hours_start' => [Rule::requiredIf(Utils::isTrue($this->input(['has_peak_hours']))), 'date_format:H:i'],
51
- 'peak_hours_end' => [Rule::requiredIf(Utils::isTrue($this->input(['has_peak_hours']))), 'date_format:H:i'],
52
- 'duration_terms' => 'string',
53
- 'estimated_days' => 'numeric',
45
+ 'cod_flat_fee' => [Rule::requiredIf($this->input('cod_calculation_method') === 'flat'), 'numeric'],
46
+ 'cod_percent' => [Rule::requiredIf($this->input('cod_calculation_method') === 'percentage'), 'integer'],
47
+ 'has_peak_hours_fee' => ['boolean'],
48
+ 'peak_hours_calculation_method' => [Rule::requiredIf(Utils::isTrue($this->input('has_peak_hours'))), 'in:percentage,flat'],
49
+ 'peak_hours_flat_fee' => [Rule::requiredIf($this->input('peak_hours_calculation_method') === 'flat'), 'numeric'],
50
+ 'peak_hours_percent' => [Rule::requiredIf($this->input('peak_hours_calculation_method') === 'percentage'), 'integer'],
51
+ 'peak_hours_start' => [Rule::requiredIf(Utils::isTrue($this->input('has_peak_hours'))), 'date_format:H:i'],
52
+ 'peak_hours_end' => [Rule::requiredIf(Utils::isTrue($this->input('has_peak_hours'))), 'date_format:H:i'],
53
+ 'duration_terms' => ['string'],
54
+ 'estimated_days' => ['integer'],
54
55
  ];
55
56
  }
56
57
  }
@@ -30,14 +30,15 @@ class CreateTrackingStatusRequest extends FleetbaseRequest
30
30
  {
31
31
  $validations = [
32
32
  'tracking_number' => array_filter([
33
- 'required',
33
+ Rule::requiredIf($this->isMethod('POST')),
34
34
  $this->isMethod('POST') ? Rule::exists('tracking_numbers', 'public_id') : null,
35
35
  $this->isMethod('POST') ? static::uniqueStatus($this) : null,
36
36
  ]),
37
- 'location' => [new ResolvablePoint()],
38
- 'code' => 'nullable|string|min:3',
39
- 'status' => ['required', 'string', 'min:3'],
40
- 'details' => 'nullable|string',
37
+ 'location' => [Rule::requiredIf($this->isMethod('POST')), new ResolvablePoint()],
38
+ 'country' => ['nullable', 'string', 'size:2'],
39
+ 'code' => [Rule::requiredIf($this->isMethod('POST')), 'string', 'min:3'],
40
+ 'status' => [Rule::requiredIf($this->isMethod('POST')), 'string', 'min:3'],
41
+ 'details' => [Rule::requiredIf($this->isMethod('POST')), 'string', 'min:3'],
41
42
  ];
42
43
 
43
44
  if ($this->isMethod('POST') && $this->missing('tracking_number') && $this->has('order')) {
@@ -50,10 +51,10 @@ class CreateTrackingStatusRequest extends FleetbaseRequest
50
51
  }
51
52
 
52
53
  if ($this->missing(['latitude', 'longitude'])) {
53
- $validations['location'] = ['required', new ResolvablePoint()];
54
+ $validations['location'] = [Rule::requiredIf($this->isMethod('POST')), new ResolvablePoint()];
54
55
  } elseif ($this->missing('location')) {
55
- $validations['latitude'] = 'required';
56
- $validations['longitude'] = 'required';
56
+ $validations['latitude'] = [Rule::requiredIf($this->isMethod('POST'))];
57
+ $validations['longitude'] = [Rule::requiredIf($this->isMethod('POST'))];
57
58
  }
58
59
 
59
60
  return $validations;
@@ -25,10 +25,12 @@ class CreateVehicleRequest extends FleetbaseRequest
25
25
  public function rules()
26
26
  {
27
27
  return [
28
- 'status' => 'nullable|in:operational,maintenance,decommissioned',
29
- 'vendor' => 'nullable|exists:vendors,public_id',
30
- 'driver' => 'nullable|exists:drivers,public_id',
31
- 'location' => ['nullable', new ResolvablePoint()],
28
+ 'status' => 'nullable|in:operational,maintenance,decommissioned',
29
+ 'vendor' => 'nullable|exists:vendors,public_id',
30
+ 'driver' => 'nullable|exists:drivers,public_id',
31
+ 'location' => ['nullable', new ResolvablePoint()],
32
+ 'latitude' => ['nullable', 'required_with:longitude'],
33
+ 'longitude' => ['nullable', 'required_with:latitude'],
32
34
  ];
33
35
  }
34
36
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
+ use Fleetbase\FleetOps\Rules\ResolvablePoint;
5
6
  use Fleetbase\Http\Requests\FleetbaseRequest;
6
7
  use Illuminate\Validation\Rule;
7
8
 
@@ -25,11 +26,29 @@ class CreateZoneRequest extends FleetbaseRequest
25
26
  public function rules()
26
27
  {
27
28
  return [
28
- 'name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
29
- // @todo properly validate boundary param
30
- 'boundary' => 'required|array',
31
- 'service_area' => 'required|exists:service_areas,public_id',
32
- 'status' => 'nullable|in:active,inactive',
29
+ 'name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
30
+ 'service_area' => [Rule::requiredIf($this->isMethod('POST')), 'exists:service_areas,public_id'],
31
+ 'border' => ['nullable', Rule::requiredIf(function () {
32
+ $isCreating = $this->isMethod('POST');
33
+ $hasCoordiantes = $this->filled('latitude') && $this->filled('longitude');
34
+ $hasLocation = $this->filled('location');
35
+
36
+ // if creating then it's required
37
+ if ($isCreating) {
38
+ // if either has coordinated or location then it's not required
39
+ if ($hasCoordiantes || $hasLocation) {
40
+ return false;
41
+ }
42
+
43
+ return true;
44
+ }
45
+
46
+ return false;
47
+ })],
48
+ 'location' => ['nullable', new ResolvablePoint()],
49
+ 'latitude' => ['nullable', 'required_with:longitude'],
50
+ 'longitude' => ['nullable', 'required_with:latitude'],
51
+ 'status' => ['nullable', 'in:active,inactive'],
33
52
  ];
34
53
  }
35
54
  }
@@ -4,6 +4,7 @@ namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
5
  use Fleetbase\Http\Requests\FleetbaseRequest;
6
6
  use Fleetbase\Rules\ExistsInAny;
7
+ use Illuminate\Validation\Rule;
7
8
 
8
9
  class QueryServiceQuotesRequest extends FleetbaseRequest
9
10
  {
@@ -25,17 +26,17 @@ class QueryServiceQuotesRequest extends FleetbaseRequest
25
26
  public function rules()
26
27
  {
27
28
  return [
28
- 'payload' => 'nullable|exists:payloads,public_id',
29
- 'service_type' => 'nullable|exists:service_rates,service_type',
30
- 'pickup' => 'nullable|required_without:payload,waypoints',
31
- 'dropoff' => 'nullable|required_without:payload,waypoints',
32
- 'waypoints' => 'nullable|array',
29
+ 'payload' => ['nullable', 'required_without_all:waypoints,pickup,dropoff', Rule::exists('payloads', 'public_id')->whereNull('deleted_at')],
30
+ 'service_type' => ['nullable', Rule::exists('service_rates', 'service_type')->whereNull('deleted_at')],
31
+ 'pickup' => ['nullable', 'required_without_all:payload,waypoints'],
32
+ 'dropoff' => ['nullable', 'required_without_all:payload,waypoints'],
33
+ 'waypoints' => ['nullable', 'array', 'required_without_all:payload,pickup,dropoff'],
33
34
  'facilitator' => ['nullable', new ExistsInAny(['vendors', 'integrated_vendors', 'contacts'], ['public_id', 'provider'])],
34
- 'scheduled_at' => 'nullable|date',
35
- 'cod' => 'nullable',
36
- 'currency' => 'nullable',
37
- 'distance' => 'nullable',
38
- 'time' => 'nullable',
35
+ 'scheduled_at' => ['nullable', 'date'],
36
+ 'cod' => ['nullable'],
37
+ 'currency' => ['nullable', 'string', 'size:3'],
38
+ 'distance' => ['nullable'],
39
+ 'time' => ['nullable'],
39
40
  ];
40
41
  }
41
42
  }
@@ -0,0 +1,32 @@
1
+ <?php
2
+
3
+ namespace Fleetbase\FleetOps\Http\Requests;
4
+
5
+ use Fleetbase\Http\Requests\FleetbaseRequest;
6
+
7
+ class ScheduleOrderRequest extends FleetbaseRequest
8
+ {
9
+ /**
10
+ * Determine if the user is authorized to make this request.
11
+ *
12
+ * @return bool
13
+ */
14
+ public function authorize()
15
+ {
16
+ return request()->session()->has('api_credential');
17
+ }
18
+
19
+ /**
20
+ * Get the validation rules that apply to the request.
21
+ *
22
+ * @return array
23
+ */
24
+ public function rules()
25
+ {
26
+ return [
27
+ 'date' => 'required|date_format:Y-m-d',
28
+ 'time' => 'nullable',
29
+ 'timezone' => 'nullable|timezone',
30
+ ];
31
+ }
32
+ }
@@ -4,17 +4,4 @@ namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
5
  class UpdateContactRequest extends CreateContactRequest
6
6
  {
7
- /**
8
- * Get the validation rules that apply to the request.
9
- *
10
- * @return array
11
- */
12
- public function rules()
13
- {
14
- return [
15
- 'name' => 'required',
16
- 'email' => 'nullable|email',
17
- 'phone' => 'nullable',
18
- ];
19
- }
20
7
  }
@@ -2,28 +2,6 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
- use Fleetbase\Http\Requests\FleetbaseRequest;
6
-
7
- class UpdateServiceAreaRequest extends FleetbaseRequest
5
+ class UpdateServiceAreaRequest extends CreateServiceAreaRequest
8
6
  {
9
- /**
10
- * Determine if the user is authorized to make this request.
11
- *
12
- * @return bool
13
- */
14
- public function authorize()
15
- {
16
- return false;
17
- }
18
-
19
- /**
20
- * Get the validation rules that apply to the request.
21
- *
22
- * @return array
23
- */
24
- public function rules()
25
- {
26
- return [
27
- ];
28
- }
29
7
  }
@@ -2,28 +2,6 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
- use Fleetbase\Http\Requests\FleetbaseRequest;
6
-
7
- class UpdateServiceQuoteRequest extends FleetbaseRequest
5
+ class UpdateServiceQuoteRequest extends CreateServiceQuoteRequest
8
6
  {
9
- /**
10
- * Determine if the user is authorized to make this request.
11
- *
12
- * @return bool
13
- */
14
- public function authorize()
15
- {
16
- return false;
17
- }
18
-
19
- /**
20
- * Get the validation rules that apply to the request.
21
- *
22
- * @return array
23
- */
24
- public function rules()
25
- {
26
- return [
27
- ];
28
- }
29
7
  }
@@ -2,28 +2,6 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
- use Fleetbase\Http\Requests\FleetbaseRequest;
6
-
7
- class UpdateServiceRateRequest extends FleetbaseRequest
5
+ class UpdateServiceRateRequest extends CreateServiceRateRequest
8
6
  {
9
- /**
10
- * Determine if the user is authorized to make this request.
11
- *
12
- * @return bool
13
- */
14
- public function authorize()
15
- {
16
- return false;
17
- }
18
-
19
- /**
20
- * Get the validation rules that apply to the request.
21
- *
22
- * @return array
23
- */
24
- public function rules()
25
- {
26
- return [
27
- ];
28
- }
29
7
  }
@@ -2,31 +2,6 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Http\Requests;
4
4
 
5
- use Fleetbase\Http\Requests\FleetbaseRequest;
6
-
7
- class UpdateTrackingStatusRequest extends FleetbaseRequest
5
+ class UpdateTrackingStatusRequest extends CreateTrackingStatusRequest
8
6
  {
9
- /**
10
- * Determine if the user is authorized to make this request.
11
- *
12
- * @return bool
13
- */
14
- public function authorize()
15
- {
16
- return request()->session()->has('api_credential');
17
- }
18
-
19
- /**
20
- * Get the validation rules that apply to the request.
21
- *
22
- * @return array
23
- */
24
- public function rules()
25
- {
26
- return [
27
- 'status' => 'required|string',
28
- 'details' => 'required|string',
29
- 'code' => 'nullable|string',
30
- ];
31
- }
32
7
  }
@@ -5,7 +5,6 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
5
5
  use Fleetbase\FleetOps\Support\Utils;
6
6
  use Fleetbase\Http\Resources\FleetbaseResource;
7
7
  use Fleetbase\Support\Http;
8
- use Illuminate\Support\Arr;
9
8
 
10
9
  class DeletedResource extends FleetbaseResource
11
10
  {
@@ -18,7 +17,7 @@ class DeletedResource extends FleetbaseResource
18
17
  */
19
18
  public function toArray($request)
20
19
  {
21
- $deleted = [
20
+ return [
22
21
  'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
23
22
  'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
24
23
  'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
@@ -26,12 +25,6 @@ class DeletedResource extends FleetbaseResource
26
25
  'time' => $this->deleted_at,
27
26
  'deleted' => true,
28
27
  ];
29
-
30
- if (Http::isInternalRequest()) {
31
- $deleted = Arr::insertAfterKey($deleted, ['uuid' => $this->uuid, 'public_id' => $this->public_id], 'id');
32
- }
33
-
34
- return $deleted;
35
28
  }
36
29
 
37
30
  /**
@@ -56,6 +49,6 @@ class DeletedResource extends FleetbaseResource
56
49
  */
57
50
  public function getObjectType()
58
51
  {
59
- return strtolower(Utils::getClassName($this->resource));
52
+ return Utils::getTypeFromClassName($this->resource);
60
53
  }
61
54
  }
@@ -19,36 +19,39 @@ class Entity extends FleetbaseResource
19
19
  public function toArray($request)
20
20
  {
21
21
  return [
22
- 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
23
- 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
24
- 'photo_uuid' => $this->when(Http::isInternalRequest(), $this->photo_uuid),
25
- 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
26
- 'customer_uuid' => $this->when(Http::isInternalRequest(), $this->customer_uuid),
27
- 'customer_type' => $this->when(Http::isInternalRequest(), $this->customer_type),
28
- 'supplier_uuid' => $this->when(Http::isInternalRequest(), $this->supplier_uuid),
29
- 'internal_id' => $this->internal_id,
30
- 'name' => $this->name,
31
- 'type' => $this->type ?? null,
32
- 'destination' => $this->when(Http::isPublicRequest(), data_get($this, 'destination.public_id'), null),
33
- 'customer' => $this->setCustomerType(Resolve::resourceForMorph($this->customer_type, $this->customer_uuid)),
34
- 'supplier' => $this->whenLoaded('supplier', $this->supplier),
35
- 'tracking_number' => new TrackingNumber($this->trackingNumber),
36
- 'description' => $this->description ?? null,
37
- 'photo_url' => $this->photo_url ?? null,
38
- 'length' => $this->length ?? null,
39
- 'width' => $this->width ?? null,
40
- 'height' => $this->height ?? null,
41
- 'dimensions_unit' => $this->dimensions_unit ?? null,
42
- 'weight' => $this->weight ?? null,
43
- 'weight_unit' => $this->weight_unit ?? null,
44
- 'declared_value' => $this->declared_value ?? null,
45
- 'price' => $this->price ?? null,
46
- 'sale_price' => $this->sale_price ?? null,
47
- 'sku' => $this->sku ?? null,
48
- 'currency' => $this->currency ?? null,
49
- 'meta' => $this->meta ?? [],
50
- 'updated_at' => $this->updated_at,
51
- 'created_at' => $this->created_at,
22
+ 'id' => $this->when(Http::isInternalRequest(), $this->id, $this->public_id),
23
+ 'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
24
+ 'photo_uuid' => $this->when(Http::isInternalRequest(), $this->photo_uuid),
25
+ 'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
26
+ 'customer_uuid' => $this->when(Http::isInternalRequest(), $this->customer_uuid),
27
+ 'customer_type' => $this->when(Http::isInternalRequest(), $this->customer_type),
28
+ 'supplier_uuid' => $this->when(Http::isInternalRequest(), $this->supplier_uuid),
29
+ 'destination_uuid' => $this->when(Http::isInternalRequest(), $this->destination_uuid),
30
+ 'payload_uuid' => $this->when(Http::isInternalRequest(), $this->payload_uuid),
31
+ 'internal_id' => $this->internal_id,
32
+ 'name' => $this->name,
33
+ 'type' => $this->type,
34
+ 'payload' => $this->when(Http::isPublicRequest(), data_get($this, 'payload.public_id'), null),
35
+ 'destination' => $this->when(Http::isPublicRequest(), data_get($this, 'destination.public_id'), null),
36
+ 'customer' => $this->setCustomerType(Resolve::resourceForMorph($this->customer_type, $this->customer_uuid)),
37
+ 'supplier' => $this->whenLoaded('supplier', $this->supplier),
38
+ 'tracking_number' => new TrackingNumber($this->trackingNumber),
39
+ 'description' => data_get($this, 'description'),
40
+ 'photo_url' => data_get($this, 'photo_url'),
41
+ 'length' => data_get($this, 'length'),
42
+ 'width' => data_get($this, 'width'),
43
+ 'height' => data_get($this, 'height'),
44
+ 'dimensions_unit' => data_get($this, 'dimensions_unit'),
45
+ 'weight' => data_get($this, 'weight'),
46
+ 'weight_unit' => data_get($this, 'weight_unit'),
47
+ 'declared_value' => data_get($this, 'declared_value'),
48
+ 'price' => data_get($this, 'price'),
49
+ 'sale_price' => data_get($this, 'sale_price'),
50
+ 'sku' => data_get($this, 'sku'),
51
+ 'currency' => data_get($this, 'currency'),
52
+ 'meta' => data_get($this, 'meta', []),
53
+ 'updated_at' => $this->updated_at,
54
+ 'created_at' => $this->created_at,
52
55
  ];
53
56
  }
54
57
 
@@ -82,23 +85,23 @@ class Entity extends FleetbaseResource
82
85
  'id' => $this->public_id,
83
86
  'internal_id' => $this->internal_id,
84
87
  'name' => $this->name,
85
- 'type' => $this->type ?? null,
88
+ 'type' => data_get($this, 'type'),
86
89
  'destination' => $this->destination ? $this->destination->public_id : null,
87
90
  'customer' => Resolve::resourceForMorph($this->customer_type, $this->customer_uuid),
88
91
  'tracking_number' => new TrackingNumber($this->trackingNumber),
89
- 'description' => $this->description ?? null,
90
- 'photo_url' => $this->photo_url ?? null,
91
- 'length' => $this->length ?? null,
92
- 'width' => $this->width ?? null,
93
- 'height' => $this->height ?? null,
94
- 'dimensions_unit' => $this->dimensions_unit ?? null,
95
- 'weight' => $this->weight ?? null,
96
- 'weight_unit' => $this->weight_unit ?? null,
97
- 'declared_value' => $this->declared_value ?? null,
98
- 'price' => $this->price ?? null,
99
- 'sale_price' => $this->sale_price ?? null,
100
- 'sku' => $this->sku ?? null,
101
- 'currency' => $this->currency ?? null,
92
+ 'description' => data_get($this, 'description'),
93
+ 'photo_url' => data_get($this, 'photo_url'),
94
+ 'length' => data_get($this, 'length'),
95
+ 'width' => data_get($this, 'width'),
96
+ 'height' => data_get($this, 'height'),
97
+ 'dimensions_unit' => data_get($this, 'dimensions_unit'),
98
+ 'weight' => data_get($this, 'weight'),
99
+ 'weight_unit' => data_get($this, 'weight_unit'),
100
+ 'declared_value' => data_get($this, 'declared_value'),
101
+ 'price' => data_get($this, 'price'),
102
+ 'sale_price' => data_get($this, 'sale_price'),
103
+ 'sku' => data_get($this, 'sku'),
104
+ 'currency' => data_get($this, 'currency'),
102
105
  'meta' => $this->meta ?? [],
103
106
  'updated_at' => $this->updated_at,
104
107
  'created_at' => $this->created_at,
@@ -50,7 +50,7 @@ class Order extends FleetbaseResource
50
50
  'pod_method' => $this->pod_method,
51
51
  'pod_required' => (bool) data_get($this, 'pod_required', false),
52
52
  'dispatched' => (bool) data_get($this, 'dispatched', false),
53
- 'adhoc' => $this->adhoc,
53
+ 'adhoc' => (bool) data_get($this, 'adhoc', false),
54
54
  'adhoc_distance' => (int) $this->getAdhocDistance(),
55
55
  'distance' => (int) $this->distance,
56
56
  'time' => (int) $this->time,
@@ -22,7 +22,7 @@ class ServiceArea extends FleetbaseResource
22
22
  'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
23
23
  'name' => $this->name,
24
24
  'type' => $this->type,
25
- 'location' => $this->location,
25
+ 'center' => $this->location,
26
26
  'border' => $this->border,
27
27
  'zones' => $this->whenLoaded('zones', Zone::collection($this->zones)),
28
28
  'status' => $this->status,
@@ -42,7 +42,7 @@ class ServiceArea extends FleetbaseResource
42
42
  'id' => $this->public_id,
43
43
  'name' => $this->name,
44
44
  'type' => $this->type,
45
- 'location' => $this->location,
45
+ 'center' => $this->location,
46
46
  'border' => $this->border,
47
47
  'status' => $this->status,
48
48
  'updated_at' => $this->updated_at,
@@ -22,7 +22,6 @@ class Vehicle extends FleetbaseResource
22
22
  'uuid' => $this->when(Http::isInternalRequest(), $this->uuid),
23
23
  'public_id' => $this->when(Http::isInternalRequest(), $this->public_id),
24
24
  'photo_uuid' => $this->when(Http::isInternalRequest(), $this->photo_uuid),
25
- 'internal_id' => $this->internal_id,
26
25
  'name' => $this->display_name,
27
26
  'display_name' => $this->when(Http::isInternalRequest(), $this->display_name),
28
27
  'vin' => $this->vin ?? null,
@@ -59,9 +58,8 @@ class Vehicle extends FleetbaseResource
59
58
  {
60
59
  return [
61
60
  'id' => $this->public_id,
62
- 'internal_id' => $this->internal_id,
63
61
  'name' => $this->name,
64
- 'vin' => $this->vin ?? null,
62
+ 'vin' => $this->vin,
65
63
  'driver' => $this->whenLoaded('driver', new Driver($this->driver)),
66
64
  'photo_url' => $this->photoUrl,
67
65
  'avatar_url' => $this->avatar_url,