@burdenoff/microfe-movethewheels 2026.925.1 → 2026.925.3
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/dist/components/StatusBadge.js +31 -31
- package/dist/constants/index.js +19 -5
- package/dist/hooks/useCustomers.js +0 -3
- package/dist/hooks/useFleet.js +197 -175
- package/dist/hooks/useInventory.js +144 -145
- package/dist/hooks/useRoutes.js +5 -14
- package/dist/movethewheels/components/StatusBadge.d.ts +3 -1
- package/dist/movethewheels/constants/index.d.ts +2 -0
- package/dist/movethewheels/hooks/useFleet.d.ts +53 -1
- package/dist/movethewheels/hooks/useInventory.d.ts +10 -0
- package/dist/movethewheels/types/index.d.ts +29 -108
- package/dist/node_modules/lucide-react/dist/esm/icons/sticky-note.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/user-x.js +30 -0
- package/dist/pages/CustomerDetailsPage.js +666 -344
- package/dist/pages/CustomersPage.js +71 -80
- package/dist/pages/DriverDetailsPage.js +702 -421
- package/dist/pages/DriversPage.js +106 -117
- package/dist/pages/FleetPage.js +5 -13
- package/dist/pages/InventoryPage.js +4 -4
- package/dist/pages/OrderDetailsPage.js +279 -274
- package/dist/pages/RouteDetailsPage.js +300 -263
- package/dist/pages/RoutesPage.js +130 -67
- package/dist/pages/VehicleDetailsPage.js +562 -287
- package/dist/pages/VehiclesPage.js +119 -70
- package/dist/pages/WarehouseDetailsPage.js +410 -370
- package/dist/pages/WarehousesPage.js +131 -82
- package/package.json +1 -1
- package/src/movethewheels/components/StatusBadge.tsx +16 -2
- package/src/movethewheels/constants/index.ts +21 -0
- package/src/movethewheels/hooks/useCustomers.ts +0 -3
- package/src/movethewheels/hooks/useFleet.ts +236 -62
- package/src/movethewheels/hooks/useInventory.ts +76 -32
- package/src/movethewheels/hooks/useRoutes.ts +17 -12
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +376 -109
- package/src/movethewheels/pages/CustomersPage.tsx +6 -15
- package/src/movethewheels/pages/DriverDetailsPage.tsx +516 -156
- package/src/movethewheels/pages/DriversPage.tsx +28 -11
- package/src/movethewheels/pages/FleetPage.tsx +9 -11
- package/src/movethewheels/pages/InventoryPage.tsx +14 -5
- package/src/movethewheels/pages/OrderDetailsPage.tsx +12 -7
- package/src/movethewheels/pages/RouteDetailsPage.tsx +89 -41
- package/src/movethewheels/pages/RoutesPage.tsx +66 -2
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +282 -20
- package/src/movethewheels/pages/VehiclesPage.tsx +68 -3
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +213 -135
- package/src/movethewheels/pages/WarehousesPage.tsx +77 -16
- package/src/movethewheels/types/index.ts +30 -108
|
@@ -171,11 +171,6 @@ export interface Customer {
|
|
|
171
171
|
address: Address;
|
|
172
172
|
businessLicense?: string;
|
|
173
173
|
taxId?: string;
|
|
174
|
-
website?: string;
|
|
175
|
-
preferredContactMethod: 'email' | 'phone' | 'both';
|
|
176
|
-
marketingOptIn: boolean;
|
|
177
|
-
notes?: string;
|
|
178
|
-
isActive: boolean;
|
|
179
174
|
rating: number;
|
|
180
175
|
createdAt: Date;
|
|
181
176
|
updatedAt: Date;
|
|
@@ -314,7 +309,8 @@ export interface ProofOfDelivery {
|
|
|
314
309
|
|
|
315
310
|
// Vehicle type
|
|
316
311
|
export type VehicleType = 'van' | 'truck' | 'motorcycle' | 'bicycle' | 'car';
|
|
317
|
-
export type VehicleStatus =
|
|
312
|
+
export type VehicleStatus =
|
|
313
|
+
'available' | 'assigned' | 'maintenance' | 'out_of_service' | 'decommissioned';
|
|
318
314
|
|
|
319
315
|
export interface VehicleDocument {
|
|
320
316
|
id: string;
|
|
@@ -333,7 +329,7 @@ export interface Vehicle {
|
|
|
333
329
|
licensePlate: string;
|
|
334
330
|
/** MtwVehicle.ownershipType — free-text, e.g. "owned", "leased". */
|
|
335
331
|
ownershipType?: string;
|
|
336
|
-
year
|
|
332
|
+
year?: number;
|
|
337
333
|
capacity: {
|
|
338
334
|
weight: number;
|
|
339
335
|
volume: number;
|
|
@@ -346,6 +342,9 @@ export interface Vehicle {
|
|
|
346
342
|
nextMaintenance?: Date;
|
|
347
343
|
/** Odometer reading (km) at which the next service is due. */
|
|
348
344
|
nextMaintenanceMileage?: number;
|
|
345
|
+
fuelType?: string;
|
|
346
|
+
/** Fuel consumption, litres per 100km. */
|
|
347
|
+
fuelEfficiencyLPer100Km?: number;
|
|
349
348
|
fuelLevel?: number;
|
|
350
349
|
mileage?: number;
|
|
351
350
|
documents: VehicleDocument[];
|
|
@@ -353,7 +352,7 @@ export interface Vehicle {
|
|
|
353
352
|
}
|
|
354
353
|
|
|
355
354
|
// Driver type
|
|
356
|
-
export type DriverStatus = 'available' | 'busy' | 'offline' | 'on_break';
|
|
355
|
+
export type DriverStatus = 'available' | 'busy' | 'offline' | 'on_break' | 'inactive';
|
|
357
356
|
|
|
358
357
|
export interface DriverDocument {
|
|
359
358
|
id: string;
|
|
@@ -377,85 +376,34 @@ export interface Driver {
|
|
|
377
376
|
assignedVehicle?: string;
|
|
378
377
|
status: DriverStatus;
|
|
379
378
|
currentLocation?: Location;
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
currentHoursThisWeek: number;
|
|
393
|
-
};
|
|
394
|
-
ratings: {
|
|
395
|
-
overall: number;
|
|
396
|
-
punctuality: number;
|
|
397
|
-
communication: number;
|
|
398
|
-
carefulHandling: number;
|
|
399
|
-
professionalism: number;
|
|
400
|
-
onTimeDelivery: number;
|
|
401
|
-
totalRatings: number;
|
|
402
|
-
};
|
|
379
|
+
/** MtwDriver.rating — a single overall rating; the backend does not track per-category breakdowns. */
|
|
380
|
+
rating: number;
|
|
381
|
+
/** Free-text HR/performance notes. */
|
|
382
|
+
notes?: string;
|
|
383
|
+
hireDate?: Date;
|
|
384
|
+
baseSalary?: number;
|
|
385
|
+
bonusYtd?: number;
|
|
386
|
+
payCurrency?: string;
|
|
387
|
+
/** Set and in the future means the driver is currently on leave. */
|
|
388
|
+
onLeaveUntil?: Date;
|
|
389
|
+
terminatedAt?: Date;
|
|
390
|
+
terminationReason?: string;
|
|
403
391
|
documents: DriverDocument[];
|
|
404
|
-
earnings: {
|
|
405
|
-
totalEarnings: number;
|
|
406
|
-
weeklyEarnings: number;
|
|
407
|
-
monthlyEarnings: number;
|
|
408
|
-
pendingPayments: number;
|
|
409
|
-
completedDeliveries: number;
|
|
410
|
-
bonuses: number;
|
|
411
|
-
};
|
|
412
|
-
compliance: {
|
|
413
|
-
hoursOfService: boolean;
|
|
414
|
-
documentation: boolean;
|
|
415
|
-
vehicleInspection: boolean;
|
|
416
|
-
lastUpdate: Date;
|
|
417
|
-
};
|
|
418
392
|
createdAt: Date;
|
|
419
393
|
}
|
|
420
394
|
|
|
421
|
-
// Warehouse zone type
|
|
422
|
-
export interface WarehouseZone {
|
|
423
|
-
id: string;
|
|
424
|
-
name: string;
|
|
425
|
-
type: 'receiving' | 'storage' | 'picking' | 'packing' | 'shipping';
|
|
426
|
-
location: string;
|
|
427
|
-
capacity: number;
|
|
428
|
-
currentOccupancy: number;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
// Warehouse equipment type
|
|
432
|
-
export interface WarehouseEquipment {
|
|
433
|
-
id: string;
|
|
434
|
-
type: string;
|
|
435
|
-
model: string;
|
|
436
|
-
status: 'operational' | 'maintenance' | 'out_of_service';
|
|
437
|
-
lastMaintenance: Date;
|
|
438
|
-
nextMaintenance: Date;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
395
|
// Warehouse type
|
|
442
396
|
export interface Warehouse {
|
|
443
397
|
id: string;
|
|
444
398
|
name: string;
|
|
445
399
|
code: string;
|
|
446
400
|
address: Address;
|
|
447
|
-
type: 'distribution' | 'fulfillment' | 'cold_storage' | 'cross_dock';
|
|
401
|
+
type: 'distribution' | 'fulfillment' | 'cold_storage' | 'cross_dock' | 'retail';
|
|
402
|
+
/** Raw backend value (free-text, e.g. "ACTIVE"/"INACTIVE" — defaults to ACTIVE). */
|
|
403
|
+
status: string;
|
|
448
404
|
capacity: {
|
|
449
405
|
totalSpace: number;
|
|
450
406
|
usedSpace: number;
|
|
451
|
-
totalPallets: number;
|
|
452
|
-
usedPallets: number;
|
|
453
|
-
specialAreas: Array<{
|
|
454
|
-
type: string;
|
|
455
|
-
capacity: number;
|
|
456
|
-
currentUsage: number;
|
|
457
|
-
temperature?: { min: number; max: number; unit: string };
|
|
458
|
-
}>;
|
|
459
407
|
};
|
|
460
408
|
operatingHours: Record<
|
|
461
409
|
string,
|
|
@@ -464,28 +412,12 @@ export interface Warehouse {
|
|
|
464
412
|
close: string;
|
|
465
413
|
} | null
|
|
466
414
|
>;
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
}>;
|
|
471
|
-
zones: WarehouseZone[];
|
|
472
|
-
equipment: WarehouseEquipment[];
|
|
473
|
-
staff: Array<{
|
|
474
|
-
userId: string;
|
|
475
|
-
role: string;
|
|
476
|
-
shift: string;
|
|
477
|
-
permissions: string[];
|
|
478
|
-
}>;
|
|
479
|
-
metrics: {
|
|
480
|
-
throughput: number;
|
|
481
|
-
accuracy: number;
|
|
482
|
-
productivity: number;
|
|
483
|
-
utilization: number;
|
|
484
|
-
ordersFulfilled: number;
|
|
485
|
-
averageProcessingTime: number;
|
|
486
|
-
lastUpdated: Date;
|
|
415
|
+
contactInfo?: {
|
|
416
|
+
email?: string;
|
|
417
|
+
phone?: string;
|
|
487
418
|
};
|
|
488
|
-
|
|
419
|
+
/** Real computed value: usedSpace / totalSpace. No other backend metrics exist for a warehouse. */
|
|
420
|
+
utilization: number;
|
|
489
421
|
createdAt: Date;
|
|
490
422
|
}
|
|
491
423
|
|
|
@@ -509,20 +441,13 @@ export interface Inventory {
|
|
|
509
441
|
productSku?: string;
|
|
510
442
|
warehouseId: string;
|
|
511
443
|
warehouseName?: string;
|
|
512
|
-
zoneId: string;
|
|
513
444
|
quantity: number;
|
|
514
445
|
reservedQuantity: number;
|
|
515
446
|
availableQuantity: number;
|
|
516
|
-
|
|
517
|
-
|
|
447
|
+
damagedQuantity: number;
|
|
448
|
+
/** Undefined means no reorder point is configured — never treat as 0 (matches the backend's low-stock rule, which requires one to be set). */
|
|
449
|
+
reorderLevel?: number;
|
|
518
450
|
lastRestocked: Date;
|
|
519
|
-
location: {
|
|
520
|
-
aisle: string;
|
|
521
|
-
shelf: string;
|
|
522
|
-
position: string;
|
|
523
|
-
level: number;
|
|
524
|
-
};
|
|
525
|
-
movements: InventoryMovement[];
|
|
526
451
|
createdAt: Date;
|
|
527
452
|
updatedAt: Date;
|
|
528
453
|
}
|
|
@@ -562,10 +487,7 @@ export interface Route {
|
|
|
562
487
|
/** Estimated fuel cost for the route (svc MtwRoute.fuelCost). */
|
|
563
488
|
fuelCost?: number;
|
|
564
489
|
actualDuration?: number;
|
|
565
|
-
startTime?: Date;
|
|
566
|
-
endTime?: Date;
|
|
567
490
|
optimized: boolean;
|
|
568
|
-
trafficConditions: TrafficCondition[];
|
|
569
491
|
createdAt: Date;
|
|
570
492
|
}
|
|
571
493
|
|