@burdenoff/microfe-movethewheels 2026.929.3 → 2026.930.1

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 (72) hide show
  1. package/dist/components/CustomerPicker.js +52 -48
  2. package/dist/components/EntityCombobox.js +25 -23
  3. package/dist/components/OrderItemRow.js +123 -78
  4. package/dist/generated/wspace-types.d.ts +1547 -64
  5. package/dist/hooks/useCustomers.js +55 -26
  6. package/dist/hooks/useFleet.js +236 -157
  7. package/dist/hooks/useInventory.js +214 -153
  8. package/dist/hooks/useMultiModalShipments.js +30 -26
  9. package/dist/hooks/useRoutes.js +64 -24
  10. package/dist/hooks/useTracking.js +14 -16
  11. package/dist/movethewheels/components/CustomerPicker.d.ts +5 -1
  12. package/dist/movethewheels/components/EntityCombobox.d.ts +6 -3
  13. package/dist/movethewheels/components/OrderItemRow.d.ts +7 -1
  14. package/dist/movethewheels/hooks/useCustomers.d.ts +3 -0
  15. package/dist/movethewheels/hooks/useFleet.d.ts +15 -2
  16. package/dist/movethewheels/hooks/useInventory.d.ts +15 -12
  17. package/dist/movethewheels/hooks/useMultiModalShipments.d.ts +1 -0
  18. package/dist/movethewheels/hooks/useRoutes.d.ts +7 -1
  19. package/dist/movethewheels/types/index.d.ts +33 -23
  20. package/dist/movethewheels/utils/formatters.d.ts +1 -1
  21. package/dist/movethewheels/utils/orderValidation.d.ts +11 -0
  22. package/dist/pages/CreateOrderPage.js +349 -297
  23. package/dist/pages/CustomerDetailsPage.js +6 -6
  24. package/dist/pages/CustomersPage.js +2 -2
  25. package/dist/pages/DashboardPage.js +1 -1
  26. package/dist/pages/DriverDetailsPage.js +340 -332
  27. package/dist/pages/DriversPage.js +7 -5
  28. package/dist/pages/FleetPage.js +1 -1
  29. package/dist/pages/InventoryPage.js +11 -12
  30. package/dist/pages/LiveTrackingPage.js +4 -4
  31. package/dist/pages/MultiModalShipmentPage.js +139 -125
  32. package/dist/pages/OrderDetailsPage.js +132 -140
  33. package/dist/pages/ProductDetailsPage.js +408 -249
  34. package/dist/pages/ProductsPage.js +5 -5
  35. package/dist/pages/RouteDetailsPage.js +208 -210
  36. package/dist/pages/RoutesPage.js +2 -2
  37. package/dist/pages/TrackingPage.js +16 -9
  38. package/dist/pages/WarehouseDetailsPage.js +166 -163
  39. package/dist/pages/WarehousesPage.js +29 -21
  40. package/dist/utils/orderValidation.js +18 -0
  41. package/package.json +1 -1
  42. package/src/generated/wspace-types.ts +1762 -64
  43. package/src/movethewheels/components/CustomerPicker.tsx +12 -0
  44. package/src/movethewheels/components/EntityCombobox.tsx +30 -11
  45. package/src/movethewheels/components/OrderItemRow.tsx +44 -0
  46. package/src/movethewheels/hooks/useCustomers.ts +45 -9
  47. package/src/movethewheels/hooks/useFleet.ts +214 -36
  48. package/src/movethewheels/hooks/useInventory.ts +185 -49
  49. package/src/movethewheels/hooks/useMultiModalShipments.ts +9 -7
  50. package/src/movethewheels/hooks/useRoutes.ts +87 -16
  51. package/src/movethewheels/hooks/useTracking.ts +23 -15
  52. package/src/movethewheels/pages/CreateOrderPage.tsx +66 -2
  53. package/src/movethewheels/pages/CustomerDetailsPage.tsx +14 -8
  54. package/src/movethewheels/pages/CustomersPage.tsx +5 -2
  55. package/src/movethewheels/pages/DashboardPage.tsx +3 -1
  56. package/src/movethewheels/pages/DriverDetailsPage.tsx +25 -4
  57. package/src/movethewheels/pages/DriversPage.tsx +8 -2
  58. package/src/movethewheels/pages/FleetPage.tsx +1 -1
  59. package/src/movethewheels/pages/InventoryPage.tsx +20 -16
  60. package/src/movethewheels/pages/LiveTrackingPage.tsx +6 -4
  61. package/src/movethewheels/pages/MultiModalShipmentPage.tsx +15 -1
  62. package/src/movethewheels/pages/OrderDetailsPage.tsx +25 -25
  63. package/src/movethewheels/pages/ProductDetailsPage.tsx +228 -49
  64. package/src/movethewheels/pages/ProductsPage.tsx +13 -5
  65. package/src/movethewheels/pages/RouteDetailsPage.tsx +24 -12
  66. package/src/movethewheels/pages/RoutesPage.tsx +4 -2
  67. package/src/movethewheels/pages/TrackingPage.tsx +32 -12
  68. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +42 -29
  69. package/src/movethewheels/pages/WarehousesPage.tsx +23 -15
  70. package/src/movethewheels/types/index.ts +36 -24
  71. package/src/movethewheels/utils/formatters.ts +1 -1
  72. package/src/movethewheels/utils/orderValidation.ts +53 -0
@@ -76,6 +76,12 @@ export interface Dimensions {
76
76
  height: number;
77
77
  unit: 'cm' | 'in' | 'm';
78
78
  }
79
+ export interface ProductDimensions {
80
+ length?: number;
81
+ width?: number;
82
+ height?: number;
83
+ unit?: 'cm' | 'in' | 'm' | string;
84
+ }
79
85
  export interface Company {
80
86
  id: string;
81
87
  name: string;
@@ -132,10 +138,10 @@ export interface Customer {
132
138
  phone: string;
133
139
  type: 'b2b' | 'b2c';
134
140
  company?: string;
135
- address: Address;
141
+ address: Partial<Address>;
136
142
  businessLicense?: string;
137
143
  taxId?: string;
138
- rating: number;
144
+ rating?: number;
139
145
  createdAt: Date;
140
146
  updatedAt: Date;
141
147
  }
@@ -143,12 +149,12 @@ export interface Product {
143
149
  id: string;
144
150
  sku: string;
145
151
  name: string;
146
- description: string;
147
- category: string;
152
+ description?: string;
153
+ category?: string;
148
154
  brand?: string;
149
- dimensions: Dimensions;
150
- weight: number;
151
- value: number;
155
+ dimensions?: ProductDimensions;
156
+ weight?: number;
157
+ value?: number;
152
158
  barcode?: string;
153
159
  images: string[];
154
160
  attributes: Array<{
@@ -271,7 +277,9 @@ export interface Vehicle {
271
277
  pallets?: number;
272
278
  };
273
279
  status: VehicleStatus;
280
+ /** Deprecated single-driver convenience value; use driverIds for all links. */
274
281
  driverId?: string;
282
+ driverIds: string[];
275
283
  currentLocation?: Location;
276
284
  lastMaintenance?: Date;
277
285
  nextMaintenance?: Date;
@@ -304,11 +312,12 @@ export interface Driver {
304
312
  licenseType: string;
305
313
  licenseExpiry?: Date;
306
314
  vehicleIds: string[];
315
+ /** Deprecated single-vehicle convenience value; use vehicleIds for all links. */
307
316
  assignedVehicle?: string;
308
317
  status: DriverStatus;
309
318
  currentLocation?: Location;
310
319
  /** MtwDriver.rating — a single overall rating; the backend does not track per-category breakdowns. */
311
- rating: number;
320
+ rating?: number;
312
321
  /** Free-text HR/performance notes. */
313
322
  notes?: string;
314
323
  hireDate?: Date;
@@ -326,13 +335,13 @@ export interface Warehouse {
326
335
  id: string;
327
336
  name: string;
328
337
  code: string;
329
- address: Address;
338
+ address: Partial<Address>;
330
339
  type: 'distribution' | 'fulfillment' | 'cold_storage' | 'cross_dock' | 'retail';
331
- /** Raw backend value (free-text, e.g. "ACTIVE"/"INACTIVE" — defaults to ACTIVE). */
332
- status: string;
340
+ /** Raw backend value (free-text, e.g. "ACTIVE"/"INACTIVE"). */
341
+ status?: string;
333
342
  capacity: {
334
- totalSpace: number;
335
- usedSpace: number;
343
+ totalSpace?: number;
344
+ usedSpace?: number;
336
345
  };
337
346
  operatingHours: Record<string, {
338
347
  open: string;
@@ -342,8 +351,8 @@ export interface Warehouse {
342
351
  email?: string;
343
352
  phone?: string;
344
353
  };
345
- /** Real computed value: usedSpace / totalSpace. No other backend metrics exist for a warehouse. */
346
- utilization: number;
354
+ /** Real computed value: usedSpace / totalSpace, when both values are available. */
355
+ utilization?: number;
347
356
  createdAt: Date;
348
357
  }
349
358
  export interface InventoryMovement {
@@ -379,9 +388,9 @@ export interface RouteStop {
379
388
  sequence: number;
380
389
  address: Address;
381
390
  type: 'pickup' | 'delivery';
382
- scheduledTime: Date;
391
+ scheduledTime?: Date;
383
392
  actualTime?: Date;
384
- duration: number;
393
+ duration?: number;
385
394
  status: 'pending' | 'completed' | 'skipped' | 'failed';
386
395
  notes?: string;
387
396
  }
@@ -394,8 +403,8 @@ export interface TrafficCondition {
394
403
  export interface Route {
395
404
  id: string;
396
405
  name: string;
397
- driverId: string;
398
- vehicleId: string;
406
+ driverId?: string;
407
+ vehicleId?: string;
399
408
  status: 'planned' | 'in_progress' | 'completed' | 'cancelled';
400
409
  stops: RouteStop[];
401
410
  distance: number;
@@ -403,7 +412,8 @@ export interface Route {
403
412
  /** Estimated fuel cost for the route (svc MtwRoute.fuelCost). */
404
413
  fuelCost?: number;
405
414
  actualDuration?: number;
406
- optimized: boolean;
415
+ /** Backend currently does not expose whether optimization has run. */
416
+ optimized?: boolean;
407
417
  createdAt: Date;
408
418
  }
409
419
  export interface TrackingAlert {
@@ -411,7 +421,7 @@ export interface TrackingAlert {
411
421
  type: 'delay' | 'deviation' | 'temperature' | 'damage' | 'security';
412
422
  severity: 'low' | 'medium' | 'high' | 'critical';
413
423
  message: string;
414
- timestamp: Date;
424
+ timestamp?: Date;
415
425
  acknowledged: boolean;
416
426
  resolvedAt?: Date;
417
427
  }
@@ -419,13 +429,13 @@ export interface Tracking {
419
429
  id: string;
420
430
  entityId: string;
421
431
  entityType: 'order' | 'vehicle' | 'driver';
422
- currentLocation: Location;
432
+ currentLocation?: Location;
423
433
  locationHistory: Location[];
424
434
  status: string;
425
435
  estimatedArrival?: Date;
426
436
  nextCheckpoint?: string;
427
437
  alerts: TrackingAlert[];
428
- lastUpdated: Date;
438
+ lastUpdated?: Date;
429
439
  }
430
440
  export interface Notification {
431
441
  id: string;
@@ -3,7 +3,7 @@ import { Address } from '../types';
3
3
  /**
4
4
  * Format an address object into a readable string.
5
5
  */
6
- export declare function formatAddress(address: Address): string;
6
+ export declare function formatAddress(address: Partial<Address>): string;
7
7
  /**
8
8
  * Format a number as currency.
9
9
  */
@@ -0,0 +1,11 @@
1
+ import { OrderItem } from '../types';
2
+
3
+ export type OrderItemField = 'name' | 'sku' | 'quantity' | 'weight' | 'value' | 'length' | 'width' | 'height';
4
+ export type OrderItemFieldErrors = Partial<Record<OrderItemField, string>>;
5
+ /**
6
+ * Validates one delivery-job cargo line without imposing pricing or order
7
+ * semantics that belong to the service. A catalog product may supply the name;
8
+ * every line still carries its SKU because cargo-item records require one.
9
+ */
10
+ export declare function validateOrderItem(item: OrderItem): OrderItemFieldErrors;
11
+ export declare function validateOrderItems(items: OrderItem[]): Record<string, OrderItemFieldErrors>;