@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.
Files changed (47) hide show
  1. package/dist/components/StatusBadge.js +31 -31
  2. package/dist/constants/index.js +19 -5
  3. package/dist/hooks/useCustomers.js +0 -3
  4. package/dist/hooks/useFleet.js +197 -175
  5. package/dist/hooks/useInventory.js +144 -145
  6. package/dist/hooks/useRoutes.js +5 -14
  7. package/dist/movethewheels/components/StatusBadge.d.ts +3 -1
  8. package/dist/movethewheels/constants/index.d.ts +2 -0
  9. package/dist/movethewheels/hooks/useFleet.d.ts +53 -1
  10. package/dist/movethewheels/hooks/useInventory.d.ts +10 -0
  11. package/dist/movethewheels/types/index.d.ts +29 -108
  12. package/dist/node_modules/lucide-react/dist/esm/icons/sticky-note.js +11 -0
  13. package/dist/node_modules/lucide-react/dist/esm/icons/user-x.js +30 -0
  14. package/dist/pages/CustomerDetailsPage.js +666 -344
  15. package/dist/pages/CustomersPage.js +71 -80
  16. package/dist/pages/DriverDetailsPage.js +702 -421
  17. package/dist/pages/DriversPage.js +106 -117
  18. package/dist/pages/FleetPage.js +5 -13
  19. package/dist/pages/InventoryPage.js +4 -4
  20. package/dist/pages/OrderDetailsPage.js +279 -274
  21. package/dist/pages/RouteDetailsPage.js +300 -263
  22. package/dist/pages/RoutesPage.js +130 -67
  23. package/dist/pages/VehicleDetailsPage.js +562 -287
  24. package/dist/pages/VehiclesPage.js +119 -70
  25. package/dist/pages/WarehouseDetailsPage.js +410 -370
  26. package/dist/pages/WarehousesPage.js +131 -82
  27. package/package.json +1 -1
  28. package/src/movethewheels/components/StatusBadge.tsx +16 -2
  29. package/src/movethewheels/constants/index.ts +21 -0
  30. package/src/movethewheels/hooks/useCustomers.ts +0 -3
  31. package/src/movethewheels/hooks/useFleet.ts +236 -62
  32. package/src/movethewheels/hooks/useInventory.ts +76 -32
  33. package/src/movethewheels/hooks/useRoutes.ts +17 -12
  34. package/src/movethewheels/pages/CustomerDetailsPage.tsx +376 -109
  35. package/src/movethewheels/pages/CustomersPage.tsx +6 -15
  36. package/src/movethewheels/pages/DriverDetailsPage.tsx +516 -156
  37. package/src/movethewheels/pages/DriversPage.tsx +28 -11
  38. package/src/movethewheels/pages/FleetPage.tsx +9 -11
  39. package/src/movethewheels/pages/InventoryPage.tsx +14 -5
  40. package/src/movethewheels/pages/OrderDetailsPage.tsx +12 -7
  41. package/src/movethewheels/pages/RouteDetailsPage.tsx +89 -41
  42. package/src/movethewheels/pages/RoutesPage.tsx +66 -2
  43. package/src/movethewheels/pages/VehicleDetailsPage.tsx +282 -20
  44. package/src/movethewheels/pages/VehiclesPage.tsx +68 -3
  45. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +213 -135
  46. package/src/movethewheels/pages/WarehousesPage.tsx +77 -16
  47. 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 = 'available' | 'assigned' | 'maintenance' | 'out_of_service';
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: number;
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
- joinDate: Date;
381
- baseSalary: number;
382
- completedOrders: number;
383
- todayOrders: number;
384
- specializations: string[];
385
- workingHours: {
386
- startTime: string;
387
- endTime: string;
388
- workingDays: string[];
389
- maxHoursPerDay: number;
390
- maxHoursPerWeek: number;
391
- currentHoursToday: number;
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
- contacts: Array<{
468
- primaryEmail: string;
469
- primaryPhone: string;
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
- isActive: boolean;
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
- reorderLevel: number;
517
- maxLevel: number;
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