@fleetbase/fleetops-engine 0.4.4 → 0.4.6

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 (103) hide show
  1. package/README.md +1 -1
  2. package/addon/components/contact-form-panel.hbs +1 -0
  3. package/addon/components/driver-panel.hbs +1 -0
  4. package/addon/components/edit-order-route-panel.hbs +1 -0
  5. package/addon/components/fleet-form-panel.hbs +1 -0
  6. package/addon/components/fleet-panel.hbs +1 -0
  7. package/addon/components/fuel-report-form-panel.hbs +1 -0
  8. package/addon/components/fuel-report-panel.hbs +1 -0
  9. package/addon/components/issue-form-panel.hbs +1 -0
  10. package/addon/components/issue-panel.hbs +1 -0
  11. package/addon/components/place-form-panel.hbs +1 -0
  12. package/addon/components/place-panel.hbs +1 -0
  13. package/addon/components/vehicle-form-panel.hbs +1 -0
  14. package/addon/components/vehicle-panel.hbs +1 -0
  15. package/addon/components/vendor-form-panel.hbs +1 -0
  16. package/addon/components/vendor-panel.hbs +1 -0
  17. package/addon/components/widget/fleet-ops-key-metrics.hbs +19 -0
  18. package/addon/components/widget/fleet-ops-key-metrics.js +92 -0
  19. package/addon/controllers/management/contacts/index.js +3 -3
  20. package/addon/controllers/operations/orders/index.js +1 -1
  21. package/addon/engine.js +18 -12
  22. package/addon/styles/fleetops-engine.css +2 -2
  23. package/app/components/widget/{issues.js → fleet-ops-key-metrics.js} +1 -1
  24. package/composer.json +6 -6
  25. package/extension.json +1 -1
  26. package/package.json +3 -4
  27. package/server/src/Casts/MultiPolygon.php +3 -3
  28. package/server/src/Casts/Point.php +8 -4
  29. package/server/src/Casts/Polygon.php +3 -3
  30. package/server/src/Console/Commands/DispatchAdhocOrders.php +1 -1
  31. package/server/src/Events/DriverSimulatedLocationChanged.php +1 -1
  32. package/server/src/Flow/Activity.php +12 -0
  33. package/server/src/Flow/Config.php +7 -0
  34. package/server/src/Flow/Logic.php +7 -0
  35. package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -1
  36. package/server/src/Http/Controllers/Api/v1/OrderController.php +3 -3
  37. package/server/src/Http/Controllers/Api/v1/PlaceController.php +1 -1
  38. package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +1 -1
  39. package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +1 -1
  40. package/server/src/Http/Controllers/Api/v1/ZoneController.php +1 -1
  41. package/server/src/Http/Controllers/Internal/v1/DriverController.php +1 -1
  42. package/server/src/Http/Controllers/Internal/v1/GeocoderController.php +2 -2
  43. package/server/src/Http/Controllers/Internal/v1/MetricsController.php +6 -50
  44. package/server/src/Http/Controllers/Internal/v1/OrderController.php +2 -2
  45. package/server/src/Http/Controllers/Internal/v1/PlaceController.php +1 -1
  46. package/server/src/Http/Filter/PlaceFilter.php +1 -1
  47. package/server/src/Http/Resources/v1/Driver.php +1 -1
  48. package/server/src/Http/Resources/v1/FuelReport.php +1 -1
  49. package/server/src/Http/Resources/v1/Issue.php +1 -1
  50. package/server/src/Http/Resources/v1/Payload.php +1 -0
  51. package/server/src/Http/Resources/v1/Place.php +1 -1
  52. package/server/src/Http/Resources/v1/TrackingStatus.php +1 -1
  53. package/server/src/Http/Resources/v1/Vehicle.php +1 -1
  54. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +1 -1
  55. package/server/src/Http/Resources/v1/Waypoint.php +2 -4
  56. package/server/src/Integrations/Lalamove/LalamoveDeliveryStop.php +2 -2
  57. package/server/src/Jobs/SimulateWaypointReached.php +2 -2
  58. package/server/src/Models/Contact.php +6 -18
  59. package/server/src/Models/Driver.php +7 -19
  60. package/server/src/Models/Fleet.php +6 -25
  61. package/server/src/Models/FuelReport.php +1 -1
  62. package/server/src/Models/Issue.php +1 -1
  63. package/server/src/Models/Order.php +15 -19
  64. package/server/src/Models/Payload.php +7 -7
  65. package/server/src/Models/Place.php +14 -14
  66. package/server/src/Models/Position.php +1 -1
  67. package/server/src/Models/ServiceArea.php +14 -14
  68. package/server/src/Models/TrackingNumber.php +1 -1
  69. package/server/src/Models/TrackingStatus.php +1 -1
  70. package/server/src/Models/Vehicle.php +7 -19
  71. package/server/src/Models/VehicleDeviceEvent.php +1 -1
  72. package/server/src/Models/Vendor.php +8 -25
  73. package/server/src/Models/Waypoint.php +6 -6
  74. package/server/src/Models/Zone.php +8 -8
  75. package/server/src/Observers/DriverObserver.php +1 -1
  76. package/server/src/Observers/TrackingNumberObserver.php +1 -1
  77. package/server/src/Rules/ResolvablePoint.php +1 -1
  78. package/server/src/Support/Encoding/Polyline.php +1 -1
  79. package/server/src/Support/OSRM.php +1 -1
  80. package/server/src/Support/Utils.php +60 -60
  81. package/server/src/Traits/HasTrackingNumber.php +3 -3
  82. package/server/src/routes.php +1 -4
  83. package/translations/en-us.yaml +1 -0
  84. package/addon/components/widget/fleet-ops-quickstart.hbs +0 -40
  85. package/addon/components/widget/fleet-ops-quickstart.js +0 -59
  86. package/addon/components/widget/issues.hbs +0 -1
  87. package/addon/components/widget/key-metrics.hbs +0 -121
  88. package/addon/components/widget/key-metrics.js +0 -46
  89. package/addon/components/widget/live-order-map.hbs +0 -59
  90. package/addon/components/widget/live-order-map.js +0 -11
  91. package/addon/components/widget/recent-orders.hbs +0 -35
  92. package/addon/components/widget/recent-orders.js +0 -24
  93. package/addon/components/widget/transaction-earnings.hbs +0 -1
  94. package/addon/components/widget/transactions.hbs +0 -36
  95. package/addon/components/widget/transactions.js +0 -29
  96. package/addon/components/widget/weekly-orders.hbs +0 -1
  97. package/addon/components/widget/weekly-orders.js +0 -3
  98. package/app/components/widget/key-metrics.js +0 -1
  99. package/app/components/widget/live-order-map.js +0 -1
  100. package/app/components/widget/recent-orders.js +0 -1
  101. package/app/components/widget/transaction-earnings.js +0 -1
  102. package/app/components/widget/transactions.js +0 -1
  103. package/app/components/widget/weekly-orders.js +0 -1
@@ -22,11 +22,11 @@ class GeocoderController extends Controller
22
22
  $query = $request->or(['coordinates', 'query']);
23
23
  $single = $request->boolean('single');
24
24
 
25
- /** @var \Grimzy\LaravelMysqlSpatial\Types\Point $coordinates */
25
+ /** @var \Fleetbase\LaravelMysqlSpatial\Types\Point $coordinates */
26
26
  $coordinates = Utils::getPointFromCoordinates($query);
27
27
 
28
28
  // if not a valid point error
29
- if (!$coordinates instanceof \Grimzy\LaravelMysqlSpatial\Types\Point) {
29
+ if (!$coordinates instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
30
30
  return response()->error('Invalid coordinates provided.');
31
31
  }
32
32
 
@@ -8,6 +8,12 @@ use Illuminate\Http\Request;
8
8
 
9
9
  class MetricsController extends Controller
10
10
  {
11
+ /**
12
+ * Gets all key metrics for the current session.
13
+ *
14
+ * @param \Illuminate\Http\Request $request
15
+ * @return \Illuminate\Http\Response
16
+ */
11
17
  public function all(Request $request)
12
18
  {
13
19
  $start = $request->date('start');
@@ -22,54 +28,4 @@ class MetricsController extends Controller
22
28
 
23
29
  return response()->json($data);
24
30
  }
25
-
26
- public function dashboard(Request $request)
27
- {
28
- $start = $request->date('start');
29
- $end = $request->date('end');
30
- $discover = $request->array('discover', []);
31
- $metrics = [];
32
-
33
- try {
34
- $metrics = Metrics::forCompany($request->user()->company, $start, $end)->with($discover)->get();
35
- } catch (\Exception $e) {
36
- return response()->error($e->getMessage());
37
- }
38
-
39
- // metrics format map
40
- $metricsFormats = [
41
- 'earnings' => 'money',
42
- 'fuel_costs' => 'money',
43
- 'total_distance_traveled' => 'meters',
44
- ];
45
-
46
- // dashboard config
47
- $dashboardConfig = [
48
- [
49
- 'size' => 12,
50
- 'title' => 'Fleet-Ops Metrics',
51
- 'classList' => [],
52
- 'component' => null,
53
- 'queryParams' => [
54
- 'start' => ['component' => 'date-picker'],
55
- 'end' => ['component' => 'date-picker'],
56
- ],
57
- 'widgets' => collect($metrics)
58
- ->map(function ($value, $key) use ($metricsFormats) {
59
- return [
60
- 'component' => 'count',
61
- 'options' => [
62
- 'format' => $metricsFormats[$key] ?? null,
63
- 'title' => str_replace('_', ' ', \Illuminate\Support\Str::title($key)),
64
- 'value' => $value,
65
- ],
66
- ];
67
- })
68
- ->values()
69
- ->toArray(),
70
- ],
71
- ];
72
-
73
- return response()->json(array_values($dashboardConfig));
74
- }
75
31
  }
@@ -381,7 +381,7 @@ class OrderController extends FleetOpsController
381
381
  $flow = $activity = Flow::getNextActivity($order);
382
382
 
383
383
  /**
384
- * @var \Grimzy\LaravelMysqlSpatial\Types\Point
384
+ * @var \Fleetbase\LaravelMysqlSpatial\Types\Point
385
385
  */
386
386
  $location = $order->getLastLocation();
387
387
 
@@ -453,7 +453,7 @@ class OrderController extends FleetOpsController
453
453
  }
454
454
 
455
455
  /**
456
- * @var \Grimzy\LaravelMysqlSpatial\Types\Point
456
+ * @var \Fleetbase\LaravelMysqlSpatial\Types\Point
457
457
  */
458
458
  $location = $order->getLastLocation();
459
459
 
@@ -8,7 +8,7 @@ use Fleetbase\FleetOps\Models\Place;
8
8
  use Fleetbase\FleetOps\Support\Geocoding;
9
9
  use Fleetbase\Http\Requests\ExportRequest;
10
10
  use Fleetbase\Http\Requests\Internal\BulkDeleteRequest;
11
- use Grimzy\LaravelMysqlSpatial\Types\Point;
11
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
12
12
  use Illuminate\Http\Request;
13
13
  use Illuminate\Support\Str;
14
14
  use Maatwebsite\Excel\Facades\Excel;
@@ -6,7 +6,7 @@ use Fleetbase\FleetOps\Models\ServiceArea;
6
6
  use Fleetbase\FleetOps\Models\Zone;
7
7
  use Fleetbase\FleetOps\Support\Utils;
8
8
  use Fleetbase\Http\Filter\Filter;
9
- use Grimzy\LaravelMysqlSpatial\Types\Geometry;
9
+ use Fleetbase\LaravelMysqlSpatial\Types\Geometry;
10
10
 
11
11
  class PlaceFilter extends Filter
12
12
  {
@@ -4,8 +4,8 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\FleetOps\Support\Utils;
6
6
  use Fleetbase\Http\Resources\FleetbaseResource;
7
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
7
8
  use Fleetbase\Support\Http;
8
- use Grimzy\LaravelMysqlSpatial\Types\Point;
9
9
 
10
10
  class Driver extends FleetbaseResource
11
11
  {
@@ -3,8 +3,8 @@
3
3
  namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
6
7
  use Fleetbase\Support\Http;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
8
8
 
9
9
  class FuelReport extends FleetbaseResource
10
10
  {
@@ -3,8 +3,8 @@
3
3
  namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
6
7
  use Fleetbase\Support\Http;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
8
8
 
9
9
  class Issue extends FleetbaseResource
10
10
  {
@@ -43,6 +43,7 @@ class Payload extends FleetbaseResource
43
43
  {
44
44
  return $this->waypoints->map(function ($waypoint) {
45
45
  $waypoint->payload_uuid = $this->uuid;
46
+
46
47
  return $waypoint;
47
48
  });
48
49
  }
@@ -3,9 +3,9 @@
3
3
  namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
6
7
  use Fleetbase\Support\Http;
7
8
  use Fleetbase\Support\Resolve;
8
- use Grimzy\LaravelMysqlSpatial\Types\Point;
9
9
 
10
10
  class Place extends FleetbaseResource
11
11
  {
@@ -4,8 +4,8 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\FleetOps\Support\Utils;
6
6
  use Fleetbase\Http\Resources\FleetbaseResource;
7
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
7
8
  use Fleetbase\Support\Http;
8
- use Grimzy\LaravelMysqlSpatial\Types\Point;
9
9
 
10
10
  class TrackingStatus extends FleetbaseResource
11
11
  {
@@ -3,8 +3,8 @@
3
3
  namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
6
7
  use Fleetbase\Support\Http;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
8
8
 
9
9
  class Vehicle extends FleetbaseResource
10
10
  {
@@ -3,8 +3,8 @@
3
3
  namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
6
7
  use Fleetbase\Support\Http;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
8
8
 
9
9
  class VehicleWithoutDriver extends FleetbaseResource
10
10
  {
@@ -4,9 +4,9 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
4
4
 
5
5
  use Fleetbase\FleetOps\Models\Waypoint as WaypointModel;
6
6
  use Fleetbase\Http\Resources\FleetbaseResource;
7
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
7
8
  use Fleetbase\Support\Http;
8
9
  use Fleetbase\Support\Resolve;
9
- use Grimzy\LaravelMysqlSpatial\Types\Point;
10
10
 
11
11
  class Waypoint extends FleetbaseResource
12
12
  {
@@ -56,9 +56,7 @@ class Waypoint extends FleetbaseResource
56
56
  }
57
57
 
58
58
  /**
59
- * Finds the waypoint got a payload and place
60
- *
61
- * @return WaypointModel|null
59
+ * Finds the waypoint got a payload and place.
62
60
  */
63
61
  private function getWaypoint(): ?WaypointModel
64
62
  {
@@ -3,8 +3,8 @@
3
3
  namespace Fleetbase\FleetOps\Integrations\Lalamove;
4
4
 
5
5
  use Fleetbase\FleetOps\Models\Place;
6
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialExpression;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
6
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialExpression;
7
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
8
8
  use Illuminate\Support\Str;
9
9
 
10
10
  class LalamoveDeliveryStop
@@ -4,7 +4,7 @@ namespace Fleetbase\FleetOps\Jobs;
4
4
 
5
5
  use Fleetbase\FleetOps\Events\DriverSimulatedLocationChanged;
6
6
  use Fleetbase\FleetOps\Models\Driver;
7
- use Grimzy\LaravelMysqlSpatial\Types\Point;
7
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
8
8
  use Illuminate\Bus\Queueable;
9
9
  use Illuminate\Contracts\Queue\ShouldQueue;
10
10
  use Illuminate\Foundation\Bus\Dispatchable;
@@ -28,7 +28,7 @@ class SimulateWaypointReached implements ShouldQueue
28
28
  public Driver $driver;
29
29
 
30
30
  /**
31
- * @var \Grimzy\LaravelMysqlSpatial\Types\Point the waypoint that the driver is simulated to have reached
31
+ * @var \Fleetbase\LaravelMysqlSpatial\Types\Point the waypoint that the driver is simulated to have reached
32
32
  */
33
33
  public Point $waypoint;
34
34
 
@@ -13,6 +13,7 @@ use Fleetbase\Traits\Searchable;
13
13
  use Fleetbase\Traits\SendsWebhooks;
14
14
  use Fleetbase\Traits\TracksApiCredential;
15
15
  use Illuminate\Notifications\Notifiable;
16
+ use Spatie\Activitylog\LogOptions;
16
17
  use Spatie\Activitylog\Traits\CausesActivity;
17
18
  use Spatie\Activitylog\Traits\LogsActivity;
18
19
  use Spatie\Sluggable\HasSlug;
@@ -92,25 +93,12 @@ class Contact extends Model
92
93
  protected $filterParams = ['place_uuid', 'customer_type', 'facilitator_type', 'place'];
93
94
 
94
95
  /**
95
- * Properties which activity needs to be logged.
96
- *
97
- * @var array
96
+ * Get the activity log options for the model.
98
97
  */
99
- protected static $logAttributes = '*';
100
-
101
- /**
102
- * Do not log empty changed.
103
- *
104
- * @var bool
105
- */
106
- protected static $submitEmptyLogs = false;
107
-
108
- /**
109
- * The name of the subject to log.
110
- *
111
- * @var string
112
- */
113
- protected static $logName = 'contact';
98
+ public function getActivitylogOptions(): LogOptions
99
+ {
100
+ return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
101
+ }
114
102
 
115
103
  /**
116
104
  * Get the options for generating the slug.
@@ -7,6 +7,7 @@ use Fleetbase\FleetOps\Casts\Point;
7
7
  use Fleetbase\FleetOps\Scopes\DriverScope;
8
8
  use Fleetbase\FleetOps\Support\Utils;
9
9
  use Fleetbase\FleetOps\Support\Utils as FleetOpsUtils;
10
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
10
11
  use Fleetbase\Models\Model;
11
12
  use Fleetbase\Traits\HasApiModelBehavior;
12
13
  use Fleetbase\Traits\HasInternalId;
@@ -14,11 +15,11 @@ use Fleetbase\Traits\HasPublicId;
14
15
  use Fleetbase\Traits\HasUuid;
15
16
  use Fleetbase\Traits\SendsWebhooks;
16
17
  use Fleetbase\Traits\TracksApiCredential;
17
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
18
18
  use Illuminate\Broadcasting\Channel;
19
19
  use Illuminate\Notifications\Notifiable;
20
20
  use Illuminate\Support\Facades\DB;
21
21
  use Illuminate\Support\Str;
22
+ use Spatie\Activitylog\LogOptions;
22
23
  use Spatie\Activitylog\Traits\CausesActivity;
23
24
  use Spatie\Activitylog\Traits\LogsActivity;
24
25
  use Spatie\Sluggable\HasSlug;
@@ -157,25 +158,12 @@ class Driver extends Model
157
158
  protected $filterParams = ['vendor', 'facilitator', 'customer', 'fleet', 'photo_uuid', 'avatar_uuid'];
158
159
 
159
160
  /**
160
- * Properties which activity needs to be logged.
161
- *
162
- * @var array
161
+ * Get the activity log options for the model.
163
162
  */
164
- protected static $logAttributes = '*';
165
-
166
- /**
167
- * Do not log empty changed.
168
- *
169
- * @var bool
170
- */
171
- protected static $submitEmptyLogs = false;
172
-
173
- /**
174
- * The name of the subject to log.
175
- *
176
- * @var string
177
- */
178
- protected static $logName = 'driver';
163
+ public function getActivitylogOptions(): LogOptions
164
+ {
165
+ return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
166
+ }
179
167
 
180
168
  /**
181
169
  * Get the options for generating the slug.
@@ -10,6 +10,7 @@ use Fleetbase\Traits\Searchable;
10
10
  use Fleetbase\Traits\SendsWebhooks;
11
11
  use Fleetbase\Traits\TracksApiCredential;
12
12
  use Illuminate\Notifications\Notifiable;
13
+ use Spatie\Activitylog\LogOptions;
13
14
  use Spatie\Activitylog\Traits\LogsActivity;
14
15
  use Spatie\Sluggable\HasSlug;
15
16
  use Spatie\Sluggable\SlugOptions;
@@ -48,32 +49,12 @@ class Fleet extends Model
48
49
  protected $searchableColumns = ['name'];
49
50
 
50
51
  /**
51
- * Properties which activity needs to be logged.
52
- *
53
- * @var array
52
+ * Get the activity log options for the model.
54
53
  */
55
- protected static $logAttributes = ['name', 'task', 'service_area_uuid', 'zone_uuid'];
56
-
57
- /**
58
- * Do not log empty changed.
59
- *
60
- * @var bool
61
- */
62
- protected static $submitEmptyLogs = false;
63
-
64
- /**
65
- * We only want to log changed attributes.
66
- *
67
- * @var bool
68
- */
69
- protected static $logOnlyDirty = true;
70
-
71
- /**
72
- * The name of the subject to log.
73
- *
74
- * @var string
75
- */
76
- protected static $logName = 'fleet';
54
+ public function getActivitylogOptions(): LogOptions
55
+ {
56
+ return LogOptions::defaults()->logOnly(['name', 'task', 'service_area_uuid', 'zone_uuid'])->logOnlyDirty();
57
+ }
77
58
 
78
59
  /**
79
60
  * The flug options for this model.
@@ -5,13 +5,13 @@ namespace Fleetbase\FleetOps\Models;
5
5
  use Fleetbase\Casts\Json;
6
6
  use Fleetbase\FleetOps\Casts\Point;
7
7
  use Fleetbase\FleetOps\Support\Utils;
8
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
8
9
  use Fleetbase\Models\Model;
9
10
  use Fleetbase\Traits\HasApiModelBehavior;
10
11
  use Fleetbase\Traits\HasPublicId;
11
12
  use Fleetbase\Traits\HasUuid;
12
13
  use Fleetbase\Traits\Searchable;
13
14
  use Fleetbase\Traits\TracksApiCredential;
14
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
15
15
 
16
16
  class FuelReport extends Model
17
17
  {
@@ -4,12 +4,12 @@ namespace Fleetbase\FleetOps\Models;
4
4
 
5
5
  use Fleetbase\Casts\Json;
6
6
  use Fleetbase\FleetOps\Casts\Point;
7
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
7
8
  use Fleetbase\Models\Model;
8
9
  use Fleetbase\Traits\HasApiModelBehavior;
9
10
  use Fleetbase\Traits\HasPublicId;
10
11
  use Fleetbase\Traits\HasUuid;
11
12
  use Fleetbase\Traits\TracksApiCredential;
12
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
13
13
  use Illuminate\Support\Str;
14
14
 
15
15
  class Issue extends Model
@@ -12,6 +12,7 @@ use Fleetbase\FleetOps\Events\OrderDriverAssigned;
12
12
  use Fleetbase\FleetOps\Support\Flow;
13
13
  use Fleetbase\FleetOps\Support\Utils;
14
14
  use Fleetbase\FleetOps\Traits\HasTrackingNumber;
15
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
15
16
  use Fleetbase\Models\Model;
16
17
  use Fleetbase\Models\Transaction;
17
18
  use Fleetbase\Traits\HasApiModelBehavior;
@@ -23,9 +24,9 @@ use Fleetbase\Traits\HasUuid;
23
24
  use Fleetbase\Traits\Searchable;
24
25
  use Fleetbase\Traits\SendsWebhooks;
25
26
  use Fleetbase\Traits\TracksApiCredential;
26
- use Grimzy\LaravelMysqlSpatial\Types\Point;
27
27
  use Illuminate\Support\Carbon;
28
28
  use Illuminate\Support\Str;
29
+ use Spatie\Activitylog\LogOptions;
29
30
  use Spatie\Activitylog\Traits\LogsActivity;
30
31
 
31
32
  class Order extends Model
@@ -201,25 +202,12 @@ class Order extends Model
201
202
  ];
202
203
 
203
204
  /**
204
- * Properties which activity needs to be logged.
205
- *
206
- * @var array
207
- */
208
- protected static $logAttributes = '*';
209
-
210
- /**
211
- * Do not log empty changed.
212
- *
213
- * @var bool
205
+ * Get the activity log options for the model.
214
206
  */
215
- protected static $submitEmptyLogs = false;
216
-
217
- /**
218
- * The name of the subject to log.
219
- *
220
- * @var string
221
- */
222
- protected static $logName = 'order';
207
+ public function getActivitylogOptions(): LogOptions
208
+ {
209
+ return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
210
+ }
223
211
 
224
212
  /**
225
213
  * @return \Barryvdh\DomPDF\PDF
@@ -339,6 +327,14 @@ class Order extends Model
339
327
  return $this->hasMany(\Fleetbase\Models\File::class, 'subject_uuid')->latest();
340
328
  }
341
329
 
330
+ /**
331
+ * @return \Illuminate\Database\Eloquent\Relations\HasMany
332
+ */
333
+ public function customFields()
334
+ {
335
+ return $this->hasMany(\Fleetbase\Models\CustomField::class, 'subject_uuid')->orderBy('order');
336
+ }
337
+
342
338
  /**
343
339
  * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
344
340
  */
@@ -5,13 +5,13 @@ namespace Fleetbase\FleetOps\Models;
5
5
  use Fleetbase\Casts\Json;
6
6
  use Fleetbase\FleetOps\Support\Utils;
7
7
  use Fleetbase\Http\Resources\Internal\v1\Payload as PayloadResource;
8
+ use Fleetbase\LaravelMysqlSpatial\Types\Point;
8
9
  use Fleetbase\Models\Model;
9
10
  use Fleetbase\Traits\HasApiModelBehavior;
10
11
  use Fleetbase\Traits\HasMetaAttributes;
11
12
  use Fleetbase\Traits\HasPublicId;
12
13
  use Fleetbase\Traits\HasUuid;
13
14
  use Fleetbase\Traits\TracksApiCredential;
14
- use Grimzy\LaravelMysqlSpatial\Types\Point;
15
15
  use Illuminate\Support\Facades\DB;
16
16
  use Illuminate\Support\Str;
17
17
 
@@ -562,7 +562,7 @@ class Payload extends Model
562
562
  /**
563
563
  * Get the pickup location for the payload.
564
564
  *
565
- * @return \Grimzy\LaravelMysqlSpatial\Types\Point
565
+ * @return \Fleetbase\LaravelMysqlSpatial\Types\Point
566
566
  */
567
567
  public function getPickupLocation()
568
568
  {
@@ -653,8 +653,8 @@ class Payload extends Model
653
653
  /**
654
654
  * Set the first waypoint and update activity.
655
655
  *
656
- * @param array $activity
657
- * @param \Grimzy\LaravelMysqlSpatial\Types\Point $location
656
+ * @param array $activity
657
+ * @param \Fleetbase\LaravelMysqlSpatial\Types\Point $location
658
658
  *
659
659
  * @return void
660
660
  */
@@ -682,9 +682,9 @@ class Payload extends Model
682
682
  /**
683
683
  * Update the current waypoint activity and it's entities.
684
684
  *
685
- * @param array $activity
686
- * @param \Grimzy\LaravelMysqlSpatial\Types\Point $location
687
- * @param \Fleetbase\Models\Proof|string|null $proof resolvable proof of delivery/activity
685
+ * @param array $activity
686
+ * @param \Fleetbase\LaravelMysqlSpatial\Types\Point $location
687
+ * @param \Fleetbase\Models\Proof|string|null $proof resolvable proof of delivery/activity
688
688
  *
689
689
  * @return $this
690
690
  */
@@ -6,6 +6,7 @@ use Fleetbase\Casts\Json;
6
6
  use Fleetbase\FleetOps\Casts\Point;
7
7
  use Fleetbase\FleetOps\Support\Geocoding;
8
8
  use Fleetbase\FleetOps\Support\Utils;
9
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
9
10
  use Fleetbase\Models\Model;
10
11
  use Fleetbase\Traits\HasApiModelBehavior;
11
12
  use Fleetbase\Traits\HasMetaAttributes;
@@ -14,7 +15,6 @@ use Fleetbase\Traits\HasUuid;
14
15
  use Fleetbase\Traits\Searchable;
15
16
  use Fleetbase\Traits\SendsWebhooks;
16
17
  use Fleetbase\Traits\TracksApiCredential;
17
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
18
18
  use Illuminate\Support\Carbon;
19
19
  use Illuminate\Support\Facades\DB;
20
20
  use Illuminate\Support\Str;
@@ -171,7 +171,7 @@ class Place extends Model
171
171
  /**
172
172
  * Returns a Point instance from the location of the model.
173
173
  */
174
- public function getLocationAsPoint(): \Grimzy\LaravelMysqlSpatial\Types\Point
174
+ public function getLocationAsPoint(): \Fleetbase\LaravelMysqlSpatial\Types\Point
175
175
  {
176
176
  return Utils::getPointFromCoordinates($this->location);
177
177
  }
@@ -218,7 +218,7 @@ class Place extends Model
218
218
  }
219
219
 
220
220
  if ($coordinates = $address->getCoordinates()) {
221
- $this->setAttribute('location', new \Grimzy\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude()));
221
+ $this->setAttribute('location', new \Fleetbase\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude()));
222
222
  }
223
223
 
224
224
  return $this;
@@ -245,7 +245,7 @@ class Place extends Model
245
245
  $attributes['city'] = $address->getLocality();
246
246
  $attributes['building'] = $address->getStreetNumber();
247
247
  $attributes['country'] = $address->getCountry() instanceof \Geocoder\Model\Country ? $address->getCountry()->getCode() : null;
248
- $attributes['location'] = new \Grimzy\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude());
248
+ $attributes['location'] = new \Fleetbase\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude());
249
249
 
250
250
  return $attributes;
251
251
  }
@@ -303,7 +303,7 @@ class Place extends Model
303
303
  *
304
304
  * @return \Fleetbase\Models\Place|null
305
305
  */
306
- public static function createFromReverseGeocodingLookup(\Grimzy\LaravelMysqlSpatial\Types\Point $point, $saveInstance = false): ?Place
306
+ public static function createFromReverseGeocodingLookup(\Fleetbase\LaravelMysqlSpatial\Types\Point $point, $saveInstance = false): ?Place
307
307
  {
308
308
  $results = Geocoding::reverseFromCoordinates($point->getLat(), $point->getLng());
309
309
  $place = $results->first();
@@ -322,8 +322,8 @@ class Place extends Model
322
322
  /**
323
323
  * Creates a new Place instance from given coordinates.
324
324
  *
325
- * @param \Grimzy\LaravelMysqlSpatial\Types\Point|array $coordinates
326
- * @param bool $saveInstance
325
+ * @param \Fleetbase\LaravelMysqlSpatial\Types\Point|array $coordinates
326
+ * @param bool $saveInstance
327
327
  *
328
328
  * @return \Fleetbase\Models\Place|null
329
329
  */
@@ -332,15 +332,15 @@ class Place extends Model
332
332
  $instance = new Place();
333
333
  $point = Utils::getPointFromMixed($coordinates);
334
334
 
335
- if ($coordinates instanceof \Grimzy\LaravelMysqlSpatial\Types\Point) {
335
+ if ($coordinates instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
336
336
  $latitude = $coordinates->getLat();
337
337
  $longitude = $coordinates->getLng();
338
- } elseif ($point instanceof \Grimzy\LaravelMysqlSpatial\Types\Point) {
338
+ } elseif ($point instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
339
339
  $latitude = $point->getLat();
340
340
  $longitude = $point->getLng();
341
341
  }
342
342
 
343
- $instance->setAttribute('location', new \Grimzy\LaravelMysqlSpatial\Types\Point($latitude, $longitude));
343
+ $instance->setAttribute('location', new \Fleetbase\LaravelMysqlSpatial\Types\Point($latitude, $longitude));
344
344
  $instance->fill($attributes);
345
345
 
346
346
  $results = \Geocoder\Laravel\Facades\Geocoder::reverse($latitude, $longitude)->get();
@@ -361,8 +361,8 @@ class Place extends Model
361
361
  /**
362
362
  * Inserts a new place into the database using latitude and longitude coordinates.
363
363
  *
364
- * @param \Grimzy\LaravelMysqlSpatial\Types\Point|array $coordinates
365
- * @param \Grimzy\LaravelMysqlSpatial\Types\Point|string|array $coordinates the coordinates to use for the new place
364
+ * @param \Fleetbase\LaravelMysqlSpatial\Types\Point|array $coordinates
365
+ * @param \Fleetbase\LaravelMysqlSpatial\Types\Point|string|array $coordinates the coordinates to use for the new place
366
366
  *
367
367
  * @return mixed returns the UUID of the new place on success or false on failure
368
368
  */
@@ -371,11 +371,11 @@ class Place extends Model
371
371
  $attributes = array_merge([], $attributes);
372
372
  $point = Utils::getPointFromMixed($coordinates);
373
373
 
374
- if ($coordinates instanceof \Grimzy\LaravelMysqlSpatial\Types\Point) {
374
+ if ($coordinates instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
375
375
  $attributes['location'] = $coordinates;
376
376
  $latitude = $coordinates->getLat();
377
377
  $longitude = $coordinates->getLng();
378
- } elseif ($point instanceof \Grimzy\LaravelMysqlSpatial\Types\Point) {
378
+ } elseif ($point instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
379
379
  $attributes['location'] = $point;
380
380
  $latitude = $point->getLat();
381
381
  $longitude = $point->getLng();
@@ -2,11 +2,11 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Models;
4
4
 
5
+ use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
5
6
  use Fleetbase\Models\Model;
6
7
  use Fleetbase\Traits\HasApiModelBehavior;
7
8
  use Fleetbase\Traits\HasUuid;
8
9
  use Fleetbase\Traits\TracksApiCredential;
9
- use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
10
10
 
11
11
  class Position extends Model
12
12
  {