@fleetbase/fleetops-engine 0.2.6 → 0.2.7
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.
- package/.gitattributes +14 -0
- package/.php-cs-fixer.cache +1 -0
- package/.php-cs-fixer.php +29 -0
- package/LICENSE.md +16 -4
- package/README.md +103 -13
- package/composer.json +85 -0
- package/extension.json +10 -0
- package/package.json +3 -3
- package/phpstan.neon.dist +8 -0
- package/phpunit.xml.dist +16 -0
- package/server/config/api.php +765 -0
- package/server/config/cache.stores.php +18 -0
- package/server/config/dompdf.php +242 -0
- package/server/config/fleetops.php +19 -0
- package/server/config/geocoder.php +108 -0
- package/server/data/globe.json +261 -0
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +49 -0
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +62 -0
- package/server/migrations/2023_04_27_053456_create_entities_table.php +67 -0
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +39 -0
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +50 -0
- package/server/migrations/2023_04_27_053456_create_integrated_vendors_table.php +44 -0
- package/server/migrations/2023_04_27_053456_create_issues_table.php +53 -0
- package/server/migrations/2023_04_27_053456_create_orders_table.php +70 -0
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +51 -0
- package/server/migrations/2023_04_27_053456_create_places_table.php +62 -0
- package/server/migrations/2023_04_27_053456_create_positions_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_proofs_table.php +44 -0
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_routes_table.php +40 -0
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +42 -0
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +45 -0
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +47 -0
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +61 -0
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +46 -0
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +54 -0
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +84 -0
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +56 -0
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +45 -0
- package/server/migrations/2023_04_27_053456_create_zones_table.php +46 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_companies_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_contacts_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_drivers_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_entities_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleet_drivers_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleets_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fuel_reports_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_integrated_vendors_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_issues_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_orders_table.php +48 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_payloads_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_places_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_positions_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_proofs_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_purchase_rates_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_routes_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_areas_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quote_items_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quotes_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_fees_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_parcel_fees_table.php +32 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rates_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_numbers_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_statuses_table.php +34 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vehicles_table.php +36 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vendors_table.php +40 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_waypoints_table.php +38 -0
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_zones_table.php +34 -0
- package/server/migrations/2023_09_14_074512_update_vehicles_table.php +100 -0
- package/server/migrations/2023_09_14_074619_create_vehicle_devices_table.php +44 -0
- package/server/migrations/2023_09_26_071205_add_online_column_to_vehicles_table.php +32 -0
- package/server/migrations/2023_09_26_083957_create_fleet_vehicles_table.php +45 -0
- package/server/migrations/2023_09_27_023757_add_column_to_fleets_table.php +46 -0
- package/server/migrations/2023_10_05_074811_update_vehicle.php +42 -0
- package/server/resources/views/labels/default.php +165 -0
- package/server/src/Auth/Schemas/FleetOps.php +75 -0
- package/server/src/Casts/MultiPolygon.php +50 -0
- package/server/src/Casts/Point.php +109 -0
- package/server/src/Casts/Polygon.php +46 -0
- package/server/src/Console/Commands/DispatchAdhocOrders.php +137 -0
- package/server/src/Console/Commands/DispatchOrders.php +71 -0
- package/server/src/Console/Commands/TrackOrderDistanceAndTime.php +62 -0
- package/server/src/Events/DriverLocationChanged.php +174 -0
- package/server/src/Events/DriverSimulatedLocationChanged.php +183 -0
- package/server/src/Events/EntityDriverAssigned.php +36 -0
- package/server/src/Events/OrderCanceled.php +15 -0
- package/server/src/Events/OrderCompleted.php +15 -0
- package/server/src/Events/OrderDispatchFailed.php +42 -0
- package/server/src/Events/OrderDispatched.php +15 -0
- package/server/src/Events/OrderDriverAssigned.php +15 -0
- package/server/src/Events/OrderReady.php +15 -0
- package/server/src/Events/OrderStarted.php +15 -0
- package/server/src/Exceptions/IntegratedVendorException.php +18 -0
- package/server/src/Expansions/UserExpansion.php +63 -0
- package/server/src/Exports/ContactExport.php +56 -0
- package/server/src/Exports/DriverExport.php +61 -0
- package/server/src/Exports/FleetExport.php +53 -0
- package/server/src/Exports/PlaceExport.php +55 -0
- package/server/src/Exports/ServiceAreaExport.php +58 -0
- package/server/src/Exports/VehicleExport.php +57 -0
- package/server/src/Exports/VendorExport.php +57 -0
- package/server/src/Http/Controllers/Api/v1/ContactController.php +133 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +691 -0
- package/server/src/Http/Controllers/Api/v1/EntityController.php +230 -0
- package/server/src/Http/Controllers/Api/v1/FleetController.php +146 -0
- package/server/src/Http/Controllers/Api/v1/LabelController.php +63 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +1114 -0
- package/server/src/Http/Controllers/Api/v1/PayloadController.php +195 -0
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +333 -0
- package/server/src/Http/Controllers/Api/v1/PurchaseRateController.php +199 -0
- package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +133 -0
- package/server/src/Http/Controllers/Api/v1/ServiceQuoteController.php +381 -0
- package/server/src/Http/Controllers/Api/v1/ServiceRateController.php +223 -0
- package/server/src/Http/Controllers/Api/v1/TrackingNumberController.php +146 -0
- package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +138 -0
- package/server/src/Http/Controllers/Api/v1/VehicleController.php +191 -0
- package/server/src/Http/Controllers/Api/v1/VendorController.php +159 -0
- package/server/src/Http/Controllers/Api/v1/ZoneController.php +146 -0
- package/server/src/Http/Controllers/FleetOpsController.php +13 -0
- package/server/src/Http/Controllers/Internal/v1/ContactController.php +69 -0
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +261 -0
- package/server/src/Http/Controllers/Internal/v1/EntityController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/FleetController.php +152 -0
- package/server/src/Http/Controllers/Internal/v1/FleetOpsLookupController.php +80 -0
- package/server/src/Http/Controllers/Internal/v1/FuelReportController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/GeocoderController.php +96 -0
- package/server/src/Http/Controllers/Internal/v1/IntegratedVendorController.php +63 -0
- package/server/src/Http/Controllers/Internal/v1/IssueController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/LiveController.php +127 -0
- package/server/src/Http/Controllers/Internal/v1/MetricsController.php +75 -0
- package/server/src/Http/Controllers/Internal/v1/MorphController.php +77 -0
- package/server/src/Http/Controllers/Internal/v1/OrderConfigController.php +269 -0
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +564 -0
- package/server/src/Http/Controllers/Internal/v1/PayloadController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/PlaceController.php +163 -0
- package/server/src/Http/Controllers/Internal/v1/ProofController.php +139 -0
- package/server/src/Http/Controllers/Internal/v1/PurchaseRateController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/RouteController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceAreaController.php +32 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceQuoteController.php +345 -0
- package/server/src/Http/Controllers/Internal/v1/ServiceRateController.php +47 -0
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +30 -0
- package/server/src/Http/Controllers/Internal/v1/TrackingNumberController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/TrackingStatusController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleController.php +65 -0
- package/server/src/Http/Controllers/Internal/v1/VehicleDeviceController.php +15 -0
- package/server/src/Http/Controllers/Internal/v1/VendorController.php +120 -0
- package/server/src/Http/Controllers/Internal/v1/ZoneController.php +15 -0
- package/server/src/Http/Filter/ContactFilter.php +86 -0
- package/server/src/Http/Filter/DriverFilter.php +148 -0
- package/server/src/Http/Filter/FleetFilter.php +108 -0
- package/server/src/Http/Filter/IntegratedVendorFilter.php +13 -0
- package/server/src/Http/Filter/OrderFilter.php +242 -0
- package/server/src/Http/Filter/PlaceFilter.php +111 -0
- package/server/src/Http/Filter/ServiceAreaFilter.php +13 -0
- package/server/src/Http/Filter/ServiceQuoteFilter.php +13 -0
- package/server/src/Http/Filter/ServiceRateFilter.php +33 -0
- package/server/src/Http/Filter/TrackingStatusFilter.php +43 -0
- package/server/src/Http/Filter/VehicleFilter.php +91 -0
- package/server/src/Http/Filter/VendorFilter.php +83 -0
- package/server/src/Http/Filter/ZoneFilter.php +13 -0
- package/server/src/Http/Requests/CancelOrderRequest.php +31 -0
- package/server/src/Http/Requests/CreateContactRequest.php +33 -0
- package/server/src/Http/Requests/CreateDriverRequest.php +55 -0
- package/server/src/Http/Requests/CreateEntityRequest.php +43 -0
- package/server/src/Http/Requests/CreateFleetRequest.php +32 -0
- package/server/src/Http/Requests/CreateOrderRequest.php +66 -0
- package/server/src/Http/Requests/CreatePayloadRequest.php +37 -0
- package/server/src/Http/Requests/CreatePlaceRequest.php +38 -0
- package/server/src/Http/Requests/CreatePurchaseRateRequest.php +33 -0
- package/server/src/Http/Requests/CreateServiceAreaRequest.php +35 -0
- package/server/src/Http/Requests/CreateServiceQuoteRequest.php +29 -0
- package/server/src/Http/Requests/CreateServiceRateRequest.php +56 -0
- package/server/src/Http/Requests/CreateTrackingNumberRequest.php +34 -0
- package/server/src/Http/Requests/CreateTrackingStatusRequest.php +42 -0
- package/server/src/Http/Requests/CreateVehicleRequest.php +32 -0
- package/server/src/Http/Requests/CreateVendorRequest.php +35 -0
- package/server/src/Http/Requests/CreateZoneRequest.php +35 -0
- package/server/src/Http/Requests/DecodeTrackingNumberQR.php +30 -0
- package/server/src/Http/Requests/DriverSimulationRequest.php +46 -0
- package/server/src/Http/Requests/Internal/AssignOrderRequest.php +31 -0
- package/server/src/Http/Requests/Internal/CreateDriverRequest.php +42 -0
- package/server/src/Http/Requests/Internal/FleetActionRequest.php +32 -0
- package/server/src/Http/Requests/Internal/UpdateDriverRequest.php +7 -0
- package/server/src/Http/Requests/QueryServiceQuotesRequest.php +41 -0
- package/server/src/Http/Requests/UpdateContactRequest.php +20 -0
- package/server/src/Http/Requests/UpdateDriverRequest.php +7 -0
- package/server/src/Http/Requests/UpdateEntityRequest.php +7 -0
- package/server/src/Http/Requests/UpdateFleetRequest.php +7 -0
- package/server/src/Http/Requests/UpdateOrderRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePayloadRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePlaceRequest.php +7 -0
- package/server/src/Http/Requests/UpdatePurchaseRateRequest.php +7 -0
- package/server/src/Http/Requests/UpdateServiceAreaRequest.php +29 -0
- package/server/src/Http/Requests/UpdateServiceQuoteRequest.php +29 -0
- package/server/src/Http/Requests/UpdateServiceRateRequest.php +29 -0
- package/server/src/Http/Requests/UpdateTrackingNumberRequest.php +7 -0
- package/server/src/Http/Requests/UpdateTrackingStatusRequest.php +32 -0
- package/server/src/Http/Requests/UpdateVehicleRequest.php +7 -0
- package/server/src/Http/Requests/UpdateVendorRequest.php +7 -0
- package/server/src/Http/Requests/UpdateZoneRequest.php +7 -0
- package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +37 -0
- package/server/src/Http/Resources/Internal/v1/Vehicle.php +33 -0
- package/server/src/Http/Resources/Internal/v1/Waypoint.php +34 -0
- package/server/src/Http/Resources/v1/Contact.php +62 -0
- package/server/src/Http/Resources/v1/CurrentJob.php +36 -0
- package/server/src/Http/Resources/v1/DeletedResource.php +61 -0
- package/server/src/Http/Resources/v1/Driver.php +89 -0
- package/server/src/Http/Resources/v1/Entity.php +107 -0
- package/server/src/Http/Resources/v1/Fleet.php +60 -0
- package/server/src/Http/Resources/v1/FuelReport.php +67 -0
- package/server/src/Http/Resources/v1/Order.php +131 -0
- package/server/src/Http/Resources/v1/Payload.php +94 -0
- package/server/src/Http/Resources/v1/Place.php +84 -0
- package/server/src/Http/Resources/v1/Proof.php +36 -0
- package/server/src/Http/Resources/v1/PurchaseRate.php +77 -0
- package/server/src/Http/Resources/v1/ServiceArea.php +55 -0
- package/server/src/Http/Resources/v1/ServiceQuote.php +57 -0
- package/server/src/Http/Resources/v1/ServiceRate.php +94 -0
- package/server/src/Http/Resources/v1/ServiceRateFee.php +58 -0
- package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +48 -0
- package/server/src/Http/Resources/v1/TrackingNumber.php +62 -0
- package/server/src/Http/Resources/v1/TrackingStatus.php +84 -0
- package/server/src/Http/Resources/v1/Vehicle.php +75 -0
- package/server/src/Http/Resources/v1/VehicleDevice.php +44 -0
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +72 -0
- package/server/src/Http/Resources/v1/Vendor.php +72 -0
- package/server/src/Http/Resources/v1/Zone.php +60 -0
- package/server/src/Imports/OrdersImport.php +18 -0
- package/server/src/Integrations/Lalamove/Lalamove.php +678 -0
- package/server/src/Integrations/Lalamove/LalamoveDeliveryStop.php +97 -0
- package/server/src/Integrations/Lalamove/LalamoveMarket.php +123 -0
- package/server/src/Integrations/Lalamove/LalamoveServiceType.php +161 -0
- package/server/src/Jobs/SimulateDrivingRoute.php +81 -0
- package/server/src/Jobs/SimulateWaypointReached.php +79 -0
- package/server/src/Listeners/HandleOrderCanceled.php +46 -0
- package/server/src/Listeners/HandleOrderCreated.php +23 -0
- package/server/src/Listeners/HandleOrderDispatchFailed.php +35 -0
- package/server/src/Listeners/HandleOrderDispatched.php +108 -0
- package/server/src/Listeners/HandleOrderDriverAssigned.php +42 -0
- package/server/src/Listeners/HandleOrderReady.php +27 -0
- package/server/src/Listeners/HandleUserRemovedFromCompany.php +31 -0
- package/server/src/Models/Contact.php +239 -0
- package/server/src/Models/Driver.php +543 -0
- package/server/src/Models/Entity.php +416 -0
- package/server/src/Models/Fleet.php +203 -0
- package/server/src/Models/FleetDriver.php +73 -0
- package/server/src/Models/FleetVehicle.php +73 -0
- package/server/src/Models/FuelReport.php +125 -0
- package/server/src/Models/IntegratedVendor.php +219 -0
- package/server/src/Models/Issue.php +111 -0
- package/server/src/Models/Order.php +1132 -0
- package/server/src/Models/Payload.php +699 -0
- package/server/src/Models/Place.php +656 -0
- package/server/src/Models/Position.php +119 -0
- package/server/src/Models/Proof.php +94 -0
- package/server/src/Models/PurchaseRate.php +208 -0
- package/server/src/Models/Route.php +128 -0
- package/server/src/Models/ServiceArea.php +161 -0
- package/server/src/Models/ServiceQuote.php +207 -0
- package/server/src/Models/ServiceQuoteItem.php +46 -0
- package/server/src/Models/ServiceRate.php +953 -0
- package/server/src/Models/ServiceRateFee.php +96 -0
- package/server/src/Models/ServiceRateParcelFee.php +116 -0
- package/server/src/Models/TrackingNumber.php +310 -0
- package/server/src/Models/TrackingStatus.php +177 -0
- package/server/src/Models/Vehicle.php +452 -0
- package/server/src/Models/VehicleDevice.php +79 -0
- package/server/src/Models/Vendor.php +244 -0
- package/server/src/Models/Waypoint.php +226 -0
- package/server/src/Models/Zone.php +95 -0
- package/server/src/Notifications/OrderAssigned.php +140 -0
- package/server/src/Notifications/OrderCanceled.php +129 -0
- package/server/src/Notifications/OrderDispatchFailed.php +81 -0
- package/server/src/Notifications/OrderDispatched.php +173 -0
- package/server/src/Notifications/OrderPing.php +162 -0
- package/server/src/Notifications/OrderSplit.php +56 -0
- package/server/src/Observers/DriverObserver.php +34 -0
- package/server/src/Observers/OrderObserver.php +34 -0
- package/server/src/Observers/PayloadObserver.php +30 -0
- package/server/src/Observers/PlaceObserver.php +26 -0
- package/server/src/Observers/PurchaseRateObserver.php +61 -0
- package/server/src/Observers/ServiceAreaObserver.php +35 -0
- package/server/src/Observers/ServiceRateObserver.php +78 -0
- package/server/src/Observers/TrackingNumberObserver.php +44 -0
- package/server/src/Observers/UserObserver.php +20 -0
- package/server/src/Observers/VehicleObserver.php +66 -0
- package/server/src/Providers/EventServiceProvider.php +30 -0
- package/server/src/Providers/FleetOpsServiceProvider.php +94 -0
- package/server/src/Rules/ResolvablePoint.php +37 -0
- package/server/src/Scopes/DriverScope.php +21 -0
- package/server/src/Support/Algo.php +55 -0
- package/server/src/Support/DistanceMatrix.php +27 -0
- package/server/src/Support/Encoding/Polyline.php +168 -0
- package/server/src/Support/Flow.php +622 -0
- package/server/src/Support/Geocoding.php +216 -0
- package/server/src/Support/IntegratedVendors.php +287 -0
- package/server/src/Support/Metrics.php +305 -0
- package/server/src/Support/OSRM.php +191 -0
- package/server/src/Support/ParsePhone.php +21 -0
- package/server/src/Support/Utils.php +1145 -0
- package/server/src/Traits/HasTrackingNumber.php +185 -0
- package/server/src/routes.php +381 -0
- package/server/tests/Feature.php +5 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Models;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Models\Model;
|
|
6
|
+
use Fleetbase\Traits\HasUuid;
|
|
7
|
+
|
|
8
|
+
class FleetVehicle extends Model
|
|
9
|
+
{
|
|
10
|
+
use HasUuid;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The database table used by the model.
|
|
14
|
+
*
|
|
15
|
+
* @var string
|
|
16
|
+
*/
|
|
17
|
+
protected $table = 'fleet_vehicles';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The attributes that are mass assignable.
|
|
21
|
+
*
|
|
22
|
+
* @var array
|
|
23
|
+
*/
|
|
24
|
+
protected $fillable = ['fleet_uuid', 'vehicle_uuid'];
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* These attributes that can be queried.
|
|
28
|
+
*
|
|
29
|
+
* @var array
|
|
30
|
+
*/
|
|
31
|
+
protected $searchableColumns = [];
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* also search joined properties.
|
|
35
|
+
*
|
|
36
|
+
* @var array
|
|
37
|
+
*/
|
|
38
|
+
protected $alsoSearch = [['vehicle' => ['user' => 'name']]];
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Dynamic attributes that are appended to object.
|
|
42
|
+
*
|
|
43
|
+
* @var array
|
|
44
|
+
*/
|
|
45
|
+
protected $appends = [];
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The attributes excluded from the model's JSON form.
|
|
49
|
+
*
|
|
50
|
+
* @var array
|
|
51
|
+
*/
|
|
52
|
+
protected $hidden = [];
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The group of the membership.
|
|
56
|
+
*
|
|
57
|
+
* @var Model
|
|
58
|
+
*/
|
|
59
|
+
public function fleet()
|
|
60
|
+
{
|
|
61
|
+
return $this->belongsTo(Fleet::class);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The driver.
|
|
66
|
+
*
|
|
67
|
+
* @var Model
|
|
68
|
+
*/
|
|
69
|
+
public function vehicle()
|
|
70
|
+
{
|
|
71
|
+
return $this->belongsTo(Vehicle::class);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Models;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Casts\Point;
|
|
6
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
7
|
+
use Fleetbase\Models\Model;
|
|
8
|
+
use Fleetbase\Traits\HasApiModelBehavior;
|
|
9
|
+
use Fleetbase\Traits\HasPublicId;
|
|
10
|
+
use Fleetbase\Traits\HasUuid;
|
|
11
|
+
use Fleetbase\Traits\TracksApiCredential;
|
|
12
|
+
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
13
|
+
|
|
14
|
+
class FuelReport extends Model
|
|
15
|
+
{
|
|
16
|
+
use HasUuid;
|
|
17
|
+
use TracksApiCredential;
|
|
18
|
+
use HasPublicId;
|
|
19
|
+
use HasApiModelBehavior;
|
|
20
|
+
use SpatialTrait;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The database table used by the model.
|
|
24
|
+
*
|
|
25
|
+
* @var string
|
|
26
|
+
*/
|
|
27
|
+
protected $table = 'fuel_reports';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The type of public Id to generate.
|
|
31
|
+
*
|
|
32
|
+
* @var string
|
|
33
|
+
*/
|
|
34
|
+
protected $publicIdType = 'fuel_report';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* These attributes that can be queried.
|
|
38
|
+
*
|
|
39
|
+
* @var array
|
|
40
|
+
*/
|
|
41
|
+
protected $searchableColumns = [];
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The attributes that are mass assignable.
|
|
45
|
+
*
|
|
46
|
+
* @var array
|
|
47
|
+
*/
|
|
48
|
+
protected $fillable = ['company_uuid', 'driver_uuid', 'vehicle_uuid', 'odometer', 'latitude', 'longitude', 'location', 'amount', 'currency', 'volume', 'metric_unit'];
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The attributes that are spatial columns.
|
|
52
|
+
*
|
|
53
|
+
* @var array
|
|
54
|
+
*/
|
|
55
|
+
protected $spatialFields = ['location'];
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The attributes that should be cast to native types.
|
|
59
|
+
*
|
|
60
|
+
* @var array
|
|
61
|
+
*/
|
|
62
|
+
protected $casts = [
|
|
63
|
+
'location' => Point::class,
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Dynamic attributes that are appended to object.
|
|
68
|
+
*
|
|
69
|
+
* @var array
|
|
70
|
+
*/
|
|
71
|
+
protected $appends = ['vehicle_name', 'driver_name'];
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The attributes excluded from the model's JSON form.
|
|
75
|
+
*
|
|
76
|
+
* @var array
|
|
77
|
+
*/
|
|
78
|
+
protected $hidden = ['driver', 'vehicle'];
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Set the parcel fee as only numbers.
|
|
82
|
+
*
|
|
83
|
+
* @void
|
|
84
|
+
*/
|
|
85
|
+
public function setAmountAttribute($value)
|
|
86
|
+
{
|
|
87
|
+
$this->attributes['amount'] = Utils::numbersOnly($value);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
92
|
+
*/
|
|
93
|
+
public function driver()
|
|
94
|
+
{
|
|
95
|
+
return $this->belongsTo(Driver::class)->without(['vehicle']);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
100
|
+
*/
|
|
101
|
+
public function vehicle()
|
|
102
|
+
{
|
|
103
|
+
return $this->belongsTo(Vehicle::class)->without(['driver']);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Get the driver's name assigned to vehicle.
|
|
108
|
+
*
|
|
109
|
+
* @var Model
|
|
110
|
+
*/
|
|
111
|
+
public function getDriverNameAttribute()
|
|
112
|
+
{
|
|
113
|
+
return data_get($this, 'driver.name');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Get the vehicless name.
|
|
118
|
+
*
|
|
119
|
+
* @var Model
|
|
120
|
+
*/
|
|
121
|
+
public function getVehicleNameAttribute()
|
|
122
|
+
{
|
|
123
|
+
return data_get($this, 'vehicle.display_name');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Models;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Casts\Json;
|
|
6
|
+
use Fleetbase\FleetOps\Exceptions\IntegratedVendorException;
|
|
7
|
+
use Fleetbase\FleetOps\Support\IntegratedVendors;
|
|
8
|
+
use Fleetbase\FleetOps\Support\Utils;
|
|
9
|
+
use Fleetbase\Models\Model;
|
|
10
|
+
use Fleetbase\Traits\HasApiModelBehavior;
|
|
11
|
+
use Fleetbase\Traits\HasPublicId;
|
|
12
|
+
use Fleetbase\Traits\HasUuid;
|
|
13
|
+
|
|
14
|
+
class IntegratedVendor extends Model
|
|
15
|
+
{
|
|
16
|
+
use HasUuid;
|
|
17
|
+
use HasPublicId;
|
|
18
|
+
use HasApiModelBehavior;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The database table used by the model.
|
|
22
|
+
*
|
|
23
|
+
* @var string
|
|
24
|
+
*/
|
|
25
|
+
protected $table = 'integrated_vendors';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The type of public Id to generate.
|
|
29
|
+
*
|
|
30
|
+
* @var string
|
|
31
|
+
*/
|
|
32
|
+
protected $publicIdType = 'integrated_vendor';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The database connection to use.
|
|
36
|
+
*
|
|
37
|
+
* @var string
|
|
38
|
+
*/
|
|
39
|
+
protected $connection = 'mysql';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* These attributes that can be queried.
|
|
43
|
+
*
|
|
44
|
+
* @var array
|
|
45
|
+
*/
|
|
46
|
+
protected $searchableColumns = [];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The attributes that are mass assignable.
|
|
50
|
+
*
|
|
51
|
+
* @var array
|
|
52
|
+
*/
|
|
53
|
+
protected $fillable = [
|
|
54
|
+
'_key',
|
|
55
|
+
'public_id',
|
|
56
|
+
'company_uuid',
|
|
57
|
+
'created_by_uuid',
|
|
58
|
+
'host',
|
|
59
|
+
'namespace',
|
|
60
|
+
'webhook_url',
|
|
61
|
+
'provider',
|
|
62
|
+
'sandbox',
|
|
63
|
+
'options',
|
|
64
|
+
'credentials',
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Dynamic attributes that are appended to object.
|
|
69
|
+
*
|
|
70
|
+
* @var array
|
|
71
|
+
*/
|
|
72
|
+
protected $appends = ['name', 'status', 'type', 'photo_url', 'service_types', 'supported_countries', 'provider_settings'];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The attributes excluded from the model's JSON form.
|
|
76
|
+
*
|
|
77
|
+
* @var array
|
|
78
|
+
*/
|
|
79
|
+
protected $hidden = ['credentials'];
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The attributes that should be cast to native types.
|
|
83
|
+
*
|
|
84
|
+
* @var array
|
|
85
|
+
*/
|
|
86
|
+
protected $casts = [
|
|
87
|
+
'credentials' => Json::class,
|
|
88
|
+
'options' => Json::class,
|
|
89
|
+
];
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Lifecycle actions to run integrated vendor callbacks if applicable.
|
|
93
|
+
*
|
|
94
|
+
* @return void
|
|
95
|
+
*/
|
|
96
|
+
public static function boot()
|
|
97
|
+
{
|
|
98
|
+
parent::boot();
|
|
99
|
+
|
|
100
|
+
static::created(
|
|
101
|
+
function ($model) {
|
|
102
|
+
$provider = $model->provider();
|
|
103
|
+
|
|
104
|
+
if ($provider && method_exists($provider, 'callback')) {
|
|
105
|
+
try {
|
|
106
|
+
$provider->callback('onCreated');
|
|
107
|
+
} catch (IntegratedVendorException $e) {
|
|
108
|
+
$model->delete();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
static::updated(
|
|
115
|
+
function ($model) {
|
|
116
|
+
$provider = $model->provider();
|
|
117
|
+
|
|
118
|
+
if ($provider && method_exists($provider, 'onUpdated')) {
|
|
119
|
+
$provider->callback('onUpdated');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
static::deleted(
|
|
125
|
+
function ($model) {
|
|
126
|
+
$provider = $model->provider();
|
|
127
|
+
|
|
128
|
+
if ($provider && method_exists($provider, 'onDeleted')) {
|
|
129
|
+
$provider->callback('onDeleted');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
137
|
+
*/
|
|
138
|
+
public function createdBy()
|
|
139
|
+
{
|
|
140
|
+
return $this->belongsTo(\Fleetbase\Models\User::class);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
145
|
+
*/
|
|
146
|
+
public function company()
|
|
147
|
+
{
|
|
148
|
+
return $this->belongsTo(\Fleetbase\Models\Company::class);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public function setWebhookUrlAttribute($webhookUrl = null)
|
|
152
|
+
{
|
|
153
|
+
if (empty($webhookUrl)) {
|
|
154
|
+
$this->attributes['webhook_url'] = Utils::apiUrl('listeners/' . $this->provider);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
$this->attributes['webhook_url'] = $webhookUrl;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
public function getCredential(string $key)
|
|
161
|
+
{
|
|
162
|
+
return $this->credentials[$key];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
public function api()
|
|
166
|
+
{
|
|
167
|
+
return IntegratedVendors::bridgeFromIntegratedVendor($this);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
public function provider()
|
|
171
|
+
{
|
|
172
|
+
return IntegratedVendors::resolverFromIntegratedVendor($this);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
public function serviceTypes()
|
|
176
|
+
{
|
|
177
|
+
return $this->provider()->getServiceTypes();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
public function getServiceTypesAttribute()
|
|
181
|
+
{
|
|
182
|
+
return $this->serviceTypes();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
public function countries()
|
|
186
|
+
{
|
|
187
|
+
return $this->provider()->getCountries();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public function getSupportedCountriesAttribute()
|
|
191
|
+
{
|
|
192
|
+
return $this->countries();
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
public function getProviderSettingsAttribute()
|
|
196
|
+
{
|
|
197
|
+
return $this->provider()->toArray();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
public function getNameAttribute()
|
|
201
|
+
{
|
|
202
|
+
return $this->provider()->getName();
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
public function getPhotoUrlAttribute()
|
|
206
|
+
{
|
|
207
|
+
return $this->provider()->getLogo();
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
public function getStatusAttribute()
|
|
211
|
+
{
|
|
212
|
+
return 'active';
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public function getTypeAttribute()
|
|
216
|
+
{
|
|
217
|
+
return 'integrated-vendor';
|
|
218
|
+
}
|
|
219
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Models;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Casts\Point;
|
|
6
|
+
use Fleetbase\Models\Model;
|
|
7
|
+
use Fleetbase\Traits\HasApiModelBehavior;
|
|
8
|
+
use Fleetbase\Traits\HasPublicId;
|
|
9
|
+
use Fleetbase\Traits\HasUuid;
|
|
10
|
+
use Fleetbase\Traits\TracksApiCredential;
|
|
11
|
+
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
12
|
+
|
|
13
|
+
class Issue extends Model
|
|
14
|
+
{
|
|
15
|
+
use HasUuid;
|
|
16
|
+
use HasPublicId;
|
|
17
|
+
use TracksApiCredential;
|
|
18
|
+
use SpatialTrait;
|
|
19
|
+
use HasApiModelBehavior;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The database table used by the model.
|
|
23
|
+
*
|
|
24
|
+
* @var string
|
|
25
|
+
*/
|
|
26
|
+
protected $table = 'issues';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The type of public Id to generate.
|
|
30
|
+
*
|
|
31
|
+
* @var string
|
|
32
|
+
*/
|
|
33
|
+
protected $publicIdType = 'issue';
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* These attributes that can be queried.
|
|
37
|
+
*
|
|
38
|
+
* @var array
|
|
39
|
+
*/
|
|
40
|
+
protected $searchableColumns = [];
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The attributes that are mass assignable.
|
|
44
|
+
*
|
|
45
|
+
* @var array
|
|
46
|
+
*/
|
|
47
|
+
protected $fillable = [
|
|
48
|
+
'_key',
|
|
49
|
+
'company_uuid',
|
|
50
|
+
'reported_by_uuid',
|
|
51
|
+
'vehicle_uuid',
|
|
52
|
+
'assigned_to_uuid',
|
|
53
|
+
'issue_id',
|
|
54
|
+
'odometer',
|
|
55
|
+
'location',
|
|
56
|
+
'latitude',
|
|
57
|
+
'longitude',
|
|
58
|
+
'type',
|
|
59
|
+
'report',
|
|
60
|
+
'priority',
|
|
61
|
+
'resolved_at',
|
|
62
|
+
'status',
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The attributes that are spatial columns.
|
|
67
|
+
*
|
|
68
|
+
* @var array
|
|
69
|
+
*/
|
|
70
|
+
protected $spatialFields = [
|
|
71
|
+
'location' => Point::class,
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Dynamic attributes that are appended to object.
|
|
76
|
+
*
|
|
77
|
+
* @var array
|
|
78
|
+
*/
|
|
79
|
+
protected $appends = [];
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The attributes excluded from the model's JSON form.
|
|
83
|
+
*
|
|
84
|
+
* @var array
|
|
85
|
+
*/
|
|
86
|
+
protected $hidden = [];
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
90
|
+
*/
|
|
91
|
+
public function reportedBy()
|
|
92
|
+
{
|
|
93
|
+
return $this->belongsTo(\Fleetbase\Models\User::class);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
98
|
+
*/
|
|
99
|
+
public function assignedTo()
|
|
100
|
+
{
|
|
101
|
+
return $this->belongsTo(\Fleetbase\Models\User::class);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
106
|
+
*/
|
|
107
|
+
public function vehicle()
|
|
108
|
+
{
|
|
109
|
+
return $this->belongsTo(Vehicle::class);
|
|
110
|
+
}
|
|
111
|
+
}
|