@routeflow/types 1.0.6 → 1.0.8

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/src/exports.ts CHANGED
@@ -1,15 +1,10 @@
1
1
  /**
2
- * Friendly type exports from the auto-generated OpenAPI types.
2
+ * Type exports from auto-generated OpenAPI types.
3
3
  *
4
- * Type Flow: Prisma → API DTOs → OpenAPIhereSDKClient Apps
4
+ * Type Flow: Prisma Schema → API DTOs → Swagger/docs-jsonopenapi-typescripthere
5
5
  *
6
- * IMPORTANT:
7
- * - Types that have Response DTOs in API are re-exported from generated types
8
- * - Types WITHOUT Response DTOs (Organization, User, Driver, Run, Stop, etc.)
9
- * are temporarily defined manually until API adds proper Response DTOs
10
- *
11
- * TODO: Once API adds Response DTOs for all entities, convert ALL manual
12
- * definitions to re-exports from components['schemas']
6
+ * IMPORTANT: ALL types in this file are re-exports from the generated index.ts
7
+ * NEVER define types manually here - if a type is missing, add a Response DTO to the API.
13
8
  */
14
9
 
15
10
  import type { components, paths, operations } from './index.js';
@@ -18,579 +13,144 @@ import type { components, paths, operations } from './index.js';
18
13
  export type { components, paths, operations };
19
14
 
20
15
  // ============================================================================
21
- // ENUMS (match Prisma schema enums)
16
+ // ENUMS - Extracted from Response DTOs
22
17
  // ============================================================================
23
- // These should match the Prisma enums exactly
24
-
25
- export type Role = 'ADMIN' | 'OWNER' | 'FLEET_MANAGER' | 'DISPATCHER' | 'ACCOUNTING' | 'DRIVER' | 'BROKER';
26
-
27
- export type RunStatus = 'DRAFT' | 'ASSIGNED' | 'IN_PROGRESS' | 'COMPLETED' | 'CANCELLED';
28
-
29
- export type CancellationReason =
30
- | 'CUSTOMER_CANCELLED'
31
- | 'DRIVER_CANCELLED'
32
- | 'EQUIPMENT_ISSUE'
33
- | 'WEATHER'
34
- | 'RATE_DISPUTE'
35
- | 'SCHEDULING_CONFLICT'
36
- | 'NO_SHOW'
37
- | 'OTHER';
38
-
39
- export type StopType = 'PICKUP' | 'DELIVERY';
40
-
41
- export type StopStatus =
42
- | 'PENDING'
43
- | 'EN_ROUTE'
44
- | 'ARRIVED'
45
- | 'LOADING'
46
- | 'LOADED'
47
- | 'DELIVERING'
48
- | 'DELIVERED'
49
- | 'EXCEPTION'
50
- | 'SKIPPED';
51
-
52
- export type DocumentType = 'BOL' | 'POD' | 'PHOTO' | 'DAMAGE' | 'RATE_CONFIRMATION' | 'SIGNATURE';
53
-
54
- export type EldProvider = 'SAMSARA' | 'GEOTAB' | 'MOTIVE' | 'MANUAL';
55
-
56
- export type AssetStatus = 'ACTIVE' | 'IN_SHOP' | 'INACTIVE';
57
-
58
- export type FuelType = 'DIESEL' | 'GASOLINE' | 'ELECTRIC' | 'HYBRID';
59
-
60
- export type TrailerType = 'RGN' | 'SD' | 'FLATBED' | 'REEFER' | 'DRY_VAN' | 'STEP_DECK' | 'LOWBOY';
61
-
62
- export type CompanyDocumentType =
63
- | 'INSURANCE'
64
- | 'W9'
65
- | 'AUTHORITY'
66
- | 'NOA'
67
- | 'VOID_CHECK'
68
- | 'MC_CERTIFICATE'
69
- | 'DOT_CERTIFICATE'
70
- | 'CARGO_INSURANCE'
71
- | 'LIABILITY_INSURANCE'
72
- | 'OTHER';
73
-
74
- export type DriverDispatchStatus =
75
- | 'AVAILABLE'
76
- | 'HOME'
77
- | 'IN_TRANSIT'
78
- | 'INACTIVE'
79
- | 'SHOP'
80
- | 'REST'
81
- | 'DISPATCHED'
82
- | 'ASSIGNED';
83
-
84
- export type CustomerType = 'BROKER' | 'SHIPPER' | 'CARRIER';
85
-
86
- // export type StatementStatus = 'DRAFT' | 'PENDING' | 'APPROVED' | 'PAID';
87
-
88
- export type MessageType = 'TEXT' | 'IMAGE' | 'DOCUMENT' | 'SYSTEM';
89
-
90
- export type ParsedDocumentStatus = 'PENDING' | 'PROCESSED' | 'FAILED' | 'NEEDS_REVIEW';
91
-
92
- export type ExtractedAssetType = 'DRIVER' | 'TRUCK' | 'TRAILER';
93
-
94
- export type ExtractedAssetStatus = 'PENDING' | 'APPROVED' | 'REJECTED' | 'MERGED';
95
-
96
- // Email-to-Run Feature Enums
97
- export type InboundEmailStatus =
98
- | 'RECEIVED'
99
- | 'PROCESSING'
100
- | 'AWAITING_SIGNATURE'
101
- | 'SIGNED'
102
- | 'FORWARDED'
103
- | 'COMPLETED'
104
- | 'FAILED';
105
-
106
- export type DocumentSourceType = 'UPLOAD' | 'TELEGRAM' | 'EMAIL' | 'API';
107
-
108
- export type ExpenseType =
109
- | 'FUEL'
110
- | 'REPAIR'
111
- | 'MAINTENANCE'
112
- | 'TOLL'
113
- | 'PARKING'
114
- | 'SCALE'
115
- | 'LUMPER'
116
- | 'DETENTION'
117
- | 'INSURANCE'
118
- | 'OTHER';
119
-
120
- export type ExpenseStatus = 'PENDING' | 'APPROVED' | 'REJECTED' | 'PAID';
18
+
19
+ export type Role = components['schemas']['UserResponseDto']['role'];
20
+ export type RunStatus = components['schemas']['RunResponseDto']['status'];
21
+ export type StopType = components['schemas']['StopResponseDto']['type'];
22
+ export type StopStatus = components['schemas']['StopResponseDto']['status'];
23
+ export type DocumentType = components['schemas']['DocumentResponseDto']['type'];
24
+ export type CustomerType = components['schemas']['CustomerResponseDto']['type'];
25
+ export type MessageType = components['schemas']['MessageResponseDto']['type'];
26
+ export type StatementStatus = components['schemas']['StatementResponseDto']['status'];
27
+ export type ExpenseType = components['schemas']['ExpenseResponseDto']['type'];
28
+ export type ExpenseStatus = components['schemas']['ExpenseResponseDto']['status'];
29
+ export type InboundEmailStatus = components['schemas']['InboundEmailResponseDto']['status'];
121
30
 
122
31
  // ============================================================================
123
- // ENTITY TYPES - WITH Response DTOs (✅ Re-exported from generated types)
32
+ // ENTITY RESPONSE TYPES
124
33
  // ============================================================================
125
34
 
126
- // Customer (has ResponseDto in API)
127
- export type Customer = components['schemas']['CustomerResponseDto'];
128
- export type CustomerList = components['schemas']['CustomerListResponseDto'];
129
-
130
- // Message (has ResponseDto in API)
131
- export type Message = components['schemas']['MessageResponseDto'];
132
- export type MessageList = components['schemas']['MessageListResponseDto'];
35
+ // Core entities
36
+ export type Organization = components['schemas']['OrganizationResponseDto'];
37
+ export type User = components['schemas']['UserResponseDto'];
38
+ export type Run = components['schemas']['RunResponseDto'];
39
+ export type Stop = components['schemas']['StopResponseDto'];
40
+ export type Document = components['schemas']['DocumentResponseDto'];
133
41
 
134
- // Statement (has ResponseDto in API)
135
- // export type DriverStatement = components['schemas']['StatementResponseDto'];
136
- // export type StatementList = components['schemas']['StatementListResponseDto'];
42
+ // Driver - full profile with compliance, equipment, etc.
43
+ export type Driver = components['schemas']['DriverResponseDto'];
44
+ export type DriverDispatchStatus = components['schemas']['DriverResponseDto']['dispatchStatus'];
137
45
 
138
- // Referral (has ResponseDto in API)
139
- export type Referral = components['schemas']['ReferralResponseDto'];
140
- export type ReferralList = components['schemas']['ReferralListResponseDto'];
141
- export type ReferralStats = components['schemas']['ReferralStatsDto'];
142
-
143
- // Extracted Assets (has ResponseDto in API)
144
- export type ExtractedAsset = components['schemas']['ExtractedAssetResponseDto'];
145
- export type ExtractedAssetField = components['schemas']['ExtractedAssetFieldDto'];
146
- export type ExtractionResult = components['schemas']['ExtractionResultResponseDto'];
147
- export type PaginatedExtractions = components['schemas']['PaginatedExtractionsResponseDto'];
148
- export type BulkOperationResult = components['schemas']['BulkOperationResponseDto'];
149
-
150
- // Smart Parse (has DTOs in API)
151
- export type SmartParseDocument = components['schemas']['SmartParseDocumentDto'];
152
- export type SmartParseResult = components['schemas']['SmartParseResultDto'];
153
- export type SuggestedDriver = components['schemas']['SuggestedDriverDto'];
154
- export type SuggestedCustomer = components['schemas']['SuggestedCustomerDto'];
46
+ // Assets
47
+ export type Truck = components['schemas']['TruckResponseDto'];
48
+ export type Trailer = components['schemas']['TrailerResponseDto'];
155
49
 
156
50
  // ============================================================================
157
- // ENTITY TYPES - WITHOUT Response DTOs (⚠️ Temporary manual definitions)
51
+ // TYPES NOW GENERATED FROM SWAGGER
158
52
  // ============================================================================
159
- // TODO: Replace with re-exports once API adds Response DTOs
160
-
161
- export interface Organization {
162
- id: string;
163
- name: string;
164
- settings: Record<string, unknown>;
165
- createdAt: string;
166
- updatedAt: string;
167
- }
168
-
169
- export interface User {
170
- id: string;
171
- email: string | null;
172
- name: string;
173
- phone: string | null;
174
- role: Role;
175
- telegramId: string | null;
176
- language: string;
177
- isActive: boolean;
178
- orgId: string;
179
- createdAt: string;
180
- updatedAt: string;
181
- org?: Organization;
182
- driver?: Driver;
183
- }
184
-
185
- export interface Driver {
186
- id: string;
187
- eldProvider: EldProvider;
188
- eldDriverId: string | null;
189
- hosAvailableMin: number | null;
190
- hosUpdatedAt: string | null;
191
- dispatchStatus: DriverDispatchStatus;
192
- userId: string;
193
- createdAt: string;
194
- updatedAt: string;
195
- user?: User;
196
- }
197
-
198
- export interface Run {
199
- id: string;
200
- name: string;
201
- loadNumber: string | null;
202
- status: RunStatus;
203
- plannedDate: string;
204
- plannedEndDate: string | null;
205
- startedAt: string | null;
206
- completedAt: string | null;
207
- cancelledAt: string | null;
208
- cancellationReason: CancellationReason | null;
209
- cancellationNotes: string | null;
210
- totalDistance: number | null;
211
- totalDuration: number | null;
212
- totalPay: number | null;
213
- equipmentType: string | null;
214
- commodityDesc: string | null;
215
- weight: number | null;
216
- orgId: string;
217
- driverId: string | null;
218
- customerId: string | null;
219
- createdById: string;
220
- cancelledById: string | null;
221
- createdAt: string;
222
- updatedAt: string;
223
- driver?: User;
224
- customer?: Customer;
225
- stops?: Stop[];
226
- documents?: Document[];
227
- }
228
-
229
- export interface Stop {
230
- id: string;
231
- sequence: number;
232
- type: StopType;
233
- status: StopStatus;
234
- facilityName: string | null;
235
- address: string;
236
- lat: number;
237
- lng: number;
238
- contactName: string | null;
239
- contactPhone: string | null;
240
- notes: string | null;
241
- referenceNumber: string | null;
242
- timeWindowStart: string | null;
243
- timeWindowEnd: string | null;
244
- arrivedAt: string | null;
245
- completedAt: string | null;
246
- runId: string;
247
- requiredDocs: DocumentType[];
248
- createdAt: string;
249
- updatedAt: string;
250
- documents?: Document[];
251
- }
252
-
253
- export interface Document {
254
- id: string;
255
- type: DocumentType;
256
- fileUrl: string;
257
- fileName: string | null;
258
- mimeType: string | null;
259
- fileSize: number | null;
260
- captureLat: number | null;
261
- captureLng: number | null;
262
- captureTime: string | null;
263
- signatureData: string | null;
264
- signedBy: string | null;
265
- runId: string;
266
- stopId: string | null;
267
- uploadedById: string;
268
- createdAt: string;
269
- }
270
-
271
- export interface DriverLocation {
272
- id: string;
273
- lat: number;
274
- lng: number;
275
- heading: number | null;
276
- speed: number | null;
277
- accuracy: number | null;
278
- recordedAt: string;
279
- driverId: string;
280
- createdAt: string;
281
- }
282
-
283
- export interface MagicLink {
284
- id: string;
285
- token: string;
286
- customerEmail: string | null;
287
- customerPhone: string | null;
288
- expiresAt: string;
289
- runId: string;
290
- stopId: string | null;
291
- createdAt: string;
292
- }
293
-
294
- export interface Truck {
295
- id: string;
296
- truckNumber: string;
297
- year: number | null;
298
- make: string | null;
299
- model: string | null;
300
- vin: string | null;
301
- licensePlate: string | null;
302
- status: AssetStatus;
303
- mileage: number | null;
304
- fuelType: FuelType | null;
305
- insuranceExpiry: string | null;
306
- lastServiceDate: string | null;
307
- notes: string | null;
308
- orgId: string;
309
- assignedDriverId: string | null;
310
- createdAt: string;
311
- updatedAt: string;
312
- assignedDriver?: User;
313
- }
314
53
 
315
- export interface Trailer {
316
- id: string;
317
- trailerNumber: string;
318
- type: TrailerType;
319
- length: string | null;
320
- weightCapacity: string | null;
321
- status: AssetStatus;
322
- vin: string | null;
323
- licensePlate: string | null;
324
- registrationExpiry: string | null;
325
- lastInspectionDate: string | null;
326
- notes: string | null;
327
- orgId: string;
328
- assignedDriverId: string | null;
329
- createdAt: string;
330
- updatedAt: string;
331
- assignedDriver?: User;
332
- }
54
+ // Magic Link
55
+ export type MagicLink = components['schemas']['MagicLinkResponseDto'];
333
56
 
334
- export interface CompanyDocument {
335
- id: string;
336
- type: CompanyDocumentType;
337
- name: string;
338
- description: string | null;
339
- fileUrl: string;
340
- fileName: string | null;
341
- mimeType: string | null;
342
- fileSize: number | null;
343
- expiryDate: string | null;
344
- isActive: boolean;
345
- orgId: string;
346
- uploadedById: string;
347
- createdAt: string;
348
- updatedAt: string;
349
- }
57
+ // Tracking types
58
+ export type TrackingStatus = components['schemas']['TrackingStatusResponseDto'];
59
+ export type TrackingLocation = components['schemas']['TrackingLocationResponseDto'];
350
60
 
351
- export interface ParsedDocument {
352
- id: string;
353
- originalFileUrl: string;
354
- fileName: string | null;
355
- mimeType: string | null;
356
- fileSize: number | null;
357
- status: ParsedDocumentStatus;
358
- parsedData: Record<string, unknown> | null;
359
- confidence: number | null;
360
- errorMessage: string | null;
361
- createdRunId: string | null;
362
- matchedCustomerId: string | null;
363
- suggestedDriverId: string | null;
364
- uploadedById: string;
365
- orgId: string;
366
- createdAt: string;
367
- updatedAt: string;
368
- // Signing workflow fields
369
- needsSignature: boolean;
370
- signatureData: string | null;
371
- signedAt: string | null;
372
- signedByName: string | null;
373
- signedByEmail: string | null;
374
- signingToken: string | null;
375
- signingTokenExp: string | null;
376
- sourceType: DocumentSourceType;
377
- sourceEmailId: string | null;
378
- }
61
+ // Company Document
62
+ export type CompanyDocument = components['schemas']['CompanyDocumentResponseDto'];
379
63
 
380
64
  // ============================================================================
381
- // EMAIL-TO-RUN FEATURE ENTITIES
65
+ // TYPES NOW GENERATED FROM SWAGGER (formerly manual)
382
66
  // ============================================================================
383
67
 
384
- export interface UserSignature {
385
- id: string;
386
- signatureData: string;
387
- userId: string;
388
- createdAt: string;
389
- updatedAt: string;
390
- }
391
-
392
- export interface ClientEmail {
393
- id: string;
394
- localPart: string;
395
- isActive: boolean;
396
- forwardTo: string[];
397
- orgId: string;
398
- customerId: string | null;
399
- createdAt: string;
400
- updatedAt: string;
401
- // Extended response fields
402
- fullEmail?: string;
403
- customerName?: string;
404
- emailCount?: number;
405
- lastEmailAt?: string | null;
406
- }
68
+ // Driver Location - used for real-time tracking
69
+ export type DriverLocation = components['schemas']['DriverLocationResponseDto'];
407
70
 
408
- export interface InboundEmail {
409
- id: string;
410
- messageId: string;
411
- fromEmail: string;
412
- fromName: string | null;
413
- subject: string | null;
414
- textBody: string | null;
415
- htmlBody: string | null;
416
- receivedAt: string;
417
- processedAt: string | null;
418
- status: InboundEmailStatus;
419
- errorMessage: string | null;
420
- clientEmailId: string;
421
- attachments?: EmailAttachment[];
422
- clientEmailLocalPart?: string;
423
- }
71
+ // Parsed Document - rate con/bol parsing results
72
+ export type ParsedDocument = components['schemas']['ParsedDocumentResponseDto'];
424
73
 
425
- export interface EmailAttachment {
426
- id: string;
427
- fileName: string;
428
- mimeType: string;
429
- fileSize: number;
430
- fileUrl: string;
431
- inboundEmailId: string;
432
- parsedDocumentId: string | null;
433
- }
74
+ // Run Summary for dashboard/pagination
75
+ export type RunSummary = components['schemas']['RunSummaryResponseDto'];
434
76
 
435
- export interface Expense {
436
- id: string;
437
- type: ExpenseType;
438
- amount: number;
439
- description: string | null;
440
- date: string;
441
- vendor: string | null;
442
- receiptUrl: string | null;
443
- status: ExpenseStatus;
444
- aiConfidence: number | null;
445
- aiMatchNotes: string | null;
446
- sourceEmailId: string | null;
447
- approvedById: string | null;
448
- approvedAt: string | null;
449
- rejectedById: string | null;
450
- rejectedAt: string | null;
451
- rejectionReason: string | null;
452
- orgId: string;
453
- runId: string | null;
454
- driverId: string | null;
455
- truckId: string | null;
456
- trailerId: string | null;
457
- createdAt: string;
458
- updatedAt: string;
459
- // Extended response fields
460
- driverName?: string;
461
- truckNumber?: string;
462
- trailerNumber?: string;
463
- runName?: string;
464
- aiSuggestion?: ExpenseAISuggestion;
465
- }
466
-
467
- export interface ExpenseAISuggestion {
468
- driverId?: string;
469
- driverName?: string;
470
- truckId?: string;
471
- truckNumber?: string;
472
- trailerId?: string;
473
- trailerNumber?: string;
474
- runId?: string;
475
- runName?: string;
476
- confidence: number;
477
- }
478
-
479
- export interface ExpenseStats {
480
- totalPending: number;
481
- totalApproved: number;
482
- pendingAmount: number;
483
- approvedAmount: number;
484
- byType: Record<ExpenseType, number>;
485
- }
486
-
487
- // Document signing response
488
- export interface DocumentToSign {
489
- id: string;
490
- documentUrl: string;
491
- fileName: string | null;
492
- mimeType: string | null;
493
- isSigned: boolean;
494
- signedAt: string | null;
495
- isExpired: boolean;
496
- expiresAt: string | null;
497
- // Parsed data
498
- brokerName?: string;
499
- loadNumber?: string;
500
- rate?: number;
501
- pickupLocation?: string;
502
- deliveryLocation?: string;
503
- pickupDate?: string;
504
- deliveryDate?: string;
505
- equipmentType?: string;
506
- commodity?: string;
507
- weight?: number;
508
- organizationName: string;
509
- hasSavedSignature?: boolean;
510
- savedSignaturePreview?: string;
511
- }
77
+ // ============================================================================
78
+ // PAGINATION UTILITY TYPES (generic helpers, not entity-specific)
79
+ // ============================================================================
512
80
 
513
- export interface SignDocumentResponse {
514
- success: boolean;
515
- message: string;
516
- createdRunId?: string;
517
- forwarded?: boolean;
518
- forwardedTo?: string[];
81
+ // Generic pagination metadata
82
+ export interface PaginationMeta {
83
+ total: number;
84
+ page: number;
85
+ limit: number;
86
+ totalPages: number;
519
87
  }
520
88
 
521
- // export interface StatementLineItem {
522
- // description: string;
523
- // type: 'EARNING' | 'DEDUCTION';
524
- // amount: number;
525
- // runId?: string;
526
- // loadNumber?: string;
527
- // }
528
- //
529
- // // ============================================================================
530
- // // AUTH RESPONSE TYPES
531
- // // ============================================================================
532
- //
533
- export interface AuthResponse {
534
- accessToken: string;
535
- refreshToken: string;
536
- user: User;
89
+ // Generic paginated response helper
90
+ export interface PaginatedResponse<T> {
91
+ data: T[];
92
+ meta: PaginationMeta;
537
93
  }
538
94
 
539
- export interface LinkingCodeResponse {
540
- code: string;
541
- expiresAt: string;
542
- }
95
+ // Customer
96
+ export type Customer = components['schemas']['CustomerResponseDto'];
97
+ export type CustomerList = components['schemas']['CustomerListResponseDto'];
543
98
 
544
- // ============================================================================
545
- // TRACKING TYPES (Public API responses)
546
- // ============================================================================
99
+ // Message
100
+ export type Message = components['schemas']['MessageResponseDto'];
101
+ export type MessageList = components['schemas']['MessageListResponseDto'];
547
102
 
548
- export interface TrackingStatus {
549
- runId: string;
550
- runName: string;
551
- status: RunStatus;
552
- estimatedArrival: string | null;
553
- currentStop: {
554
- id: string;
555
- address: string;
556
- status: StopStatus;
557
- } | null;
558
- stopsTotal: number;
559
- stopsCompleted: number;
560
- }
103
+ // Statement
104
+ export type DriverStatement = components['schemas']['StatementResponseDto'];
105
+ export type StatementList = components['schemas']['StatementListResponseDto'];
106
+ export type StatementLineItem = components['schemas']['StatementLineItem'];
561
107
 
562
- export interface TrackingLocation {
563
- lat: number;
564
- lng: number;
565
- updatedAt: string;
566
- }
108
+ // Referral
109
+ export type Referral = components['schemas']['ReferralResponseDto'];
110
+ export type ReferralList = components['schemas']['ReferralListResponseDto'];
111
+ export type ReferralStats = components['schemas']['ReferralStatsDto'];
567
112
 
568
- // ============================================================================
569
- // DASHBOARD/SUMMARY TYPES
570
- // ============================================================================
113
+ // Extracted Assets
114
+ export type ExtractedAsset = components['schemas']['ExtractedAssetResponseDto'];
115
+ export type ExtractedAssetField = components['schemas']['ExtractedAssetFieldDto'];
116
+ export type ExtractionResult = components['schemas']['ExtractionResultResponseDto'];
117
+ export type PaginatedExtractions = components['schemas']['PaginatedExtractionsResponseDto'];
118
+ export type BulkOperationResult = components['schemas']['BulkOperationResponseDto'];
571
119
 
572
- export interface RunSummary {
573
- id: string;
574
- name: string;
575
- status: RunStatus;
576
- plannedDate: string;
577
- driverName: string | null;
578
- stopsTotal: number;
579
- stopsCompleted: number;
580
- }
120
+ // Smart Parse
121
+ export type SmartParseDocument = components['schemas']['SmartParseDocumentDto'];
122
+ export type SmartParseResult = components['schemas']['SmartParseResultDto'];
123
+ export type SuggestedDriver = components['schemas']['SuggestedDriverDto'];
124
+ export type SuggestedCustomer = components['schemas']['SuggestedCustomerDto'];
581
125
 
582
- export interface TodaysRunsResponse {
583
- runs: RunSummary[];
584
- stats: {
585
- total: number;
586
- inProgress: number;
587
- completed: number;
588
- delayed: number;
589
- };
590
- }
126
+ // Signatures
127
+ export type UserSignature = components['schemas']['SignatureResponseDto'];
128
+ export type SignatureExists = components['schemas']['SignatureExistsResponseDto'];
129
+
130
+ // Expenses
131
+ export type Expense = components['schemas']['ExpenseResponseDto'];
132
+ export type ExpenseList = components['schemas']['ExpenseListResponseDto'];
133
+ export type ExpenseListResponse = components['schemas']['ExpenseListResponseDto'];
134
+ export type PaginatedExpenses = components['schemas']['ExpenseListResponseDto'];
135
+ export type ExpenseStats = components['schemas']['ExpenseStatsDto'];
136
+ export type AISuggestion = components['schemas']['AISuggestionDto'];
137
+
138
+ // Email Inbound
139
+ export type ClientEmail = components['schemas']['ClientEmailResponseDto'];
140
+ export type ClientEmailList = components['schemas']['ClientEmailListResponseDto'];
141
+ export type ClientEmailListResponse = components['schemas']['ClientEmailListResponseDto'];
142
+ export type InboundEmail = components['schemas']['InboundEmailResponseDto'];
143
+ export type InboundEmailList = components['schemas']['InboundEmailListResponseDto'];
144
+ export type InboundEmailListResponse = components['schemas']['InboundEmailListResponseDto'];
145
+ export type PaginatedInboundEmails = components['schemas']['InboundEmailListResponseDto'];
146
+ export type EmailAttachment = components['schemas']['EmailAttachmentResponseDto'];
147
+
148
+ // Document Signing
149
+ export type DocumentToSign = components['schemas']['DocumentToSignResponseDto'];
150
+ export type SignDocumentResponse = components['schemas']['SignDocumentResponseDto'];
591
151
 
592
152
  // ============================================================================
593
- // REQUEST DTOs (✅ Re-exported from generated types)
153
+ // REQUEST DTOs
594
154
  // ============================================================================
595
155
 
596
156
  // Auth DTOs
@@ -599,6 +159,9 @@ export type LoginDto = components['schemas']['LoginDto'];
599
159
  export type TelegramAuthDto = components['schemas']['TelegramAuthDto'];
600
160
  export type TelegramLinkDto = components['schemas']['TelegramLinkDto'];
601
161
  export type RefreshTokenDto = components['schemas']['RefreshTokenDto'];
162
+ export type VerifyEmailDto = components['schemas']['VerifyEmailDto'];
163
+ export type ForgotPasswordDto = components['schemas']['ForgotPasswordDto'];
164
+ export type ResetPasswordDto = components['schemas']['ResetPasswordDto'];
602
165
 
603
166
  // User DTOs
604
167
  export type CreateUserDto = components['schemas']['CreateUserDto'];
@@ -614,6 +177,8 @@ export type InviteUserDto = components['schemas']['InviteUserDto'];
614
177
  export type CreateRunDto = components['schemas']['CreateRunDto'];
615
178
  export type UpdateRunDto = components['schemas']['UpdateRunDto'];
616
179
  export type AssignDriverDto = components['schemas']['AssignDriverDto'];
180
+ export type CancelRunDto = components['schemas']['CancelRunDto'];
181
+ export type ReactivateRunDto = components['schemas']['ReactivateRunDto'];
617
182
 
618
183
  // Stop DTOs
619
184
  export type CreateStopDto = components['schemas']['CreateStopDto'];
@@ -624,6 +189,8 @@ export type UpdateStopStatusDto = components['schemas']['UpdateStopStatusDto'];
624
189
  // Document DTOs
625
190
  export type CreateDocumentDto = components['schemas']['CreateDocumentDto'];
626
191
  export type CreateCompanyDocumentDto = components['schemas']['CreateCompanyDocumentDto'];
192
+ export type ParseRateConDto = components['schemas']['ParseRateConDto'];
193
+ export type ExtractAssetsDto = components['schemas']['ExtractAssetsDto'];
627
194
 
628
195
  // Magic Link DTOs
629
196
  export type CreateMagicLinkDto = components['schemas']['CreateMagicLinkDto'];
@@ -644,194 +211,70 @@ export type CreateMessageDto = components['schemas']['CreateMessageDto'];
644
211
  export type MarkReadDto = components['schemas']['MarkReadDto'];
645
212
 
646
213
  // Statement DTOs
647
- // export type CreateStatementDto = components['schemas']['CreateStatementDto'];
648
- // export type UpdateStatementDto = components['schemas']['UpdateStatementDto'];
649
- // export type GenerateStatementDto = components['schemas']['GenerateStatementDto'];
214
+ export type CreateStatementDto = components['schemas']['CreateStatementDto'];
215
+ export type UpdateStatementDto = components['schemas']['UpdateStatementDto'];
216
+ export type GenerateStatementDto = components['schemas']['GenerateStatementDto'];
650
217
 
651
218
  // Referral DTOs
652
219
  export type CreateReferralDto = components['schemas']['CreateReferralDto'];
653
220
  export type UpdateReferralDto = components['schemas']['UpdateReferralDto'];
654
221
 
655
222
  // Document Processing DTOs
656
- export type ParseRateConDto = components['schemas']['ParseRateConDto'];
657
- export type ExtractAssetsDto = components['schemas']['ExtractAssetsDto'];
658
223
  export type ApproveExtractionDto = components['schemas']['ApproveExtractionDto'];
659
224
  export type RejectExtractionDto = components['schemas']['RejectExtractionDto'];
660
225
  export type MergeExtractionDto = components['schemas']['MergeExtractionDto'];
661
226
  export type BulkApproveDto = components['schemas']['BulkApproveDto'];
662
227
  export type BulkRejectDto = components['schemas']['BulkRejectDto'];
663
228
 
664
- // ============================================================================
665
- // EMAIL-TO-RUN REQUEST DTOs (manual until OpenAPI regeneration)
666
- // ============================================================================
229
+ // Driver Management DTOs
230
+ export type UpdateDriverDto = components['schemas']['UpdateDriverDto'];
231
+ export type UpdateComplianceDto = components['schemas']['UpdateComplianceDto'];
232
+ export type AssignDispatcherDto = components['schemas']['AssignDispatcherDto'];
233
+ export type LinkTeamDriverDto = components['schemas']['LinkTeamDriverDto'];
667
234
 
668
235
  // Signature DTOs
669
- export interface SaveSignatureRequest {
670
- signatureData: string;
671
- }
672
-
673
- // Client Email DTOs
674
- export interface CreateClientEmailRequest {
675
- localPart: string;
676
- customerId?: string;
677
- forwardTo?: string[];
678
- }
679
-
680
- export interface UpdateClientEmailRequest {
681
- localPart?: string;
682
- customerId?: string;
683
- forwardTo?: string[];
684
- isActive?: boolean;
685
- }
686
-
687
- export interface SendInvitationRequest {
688
- recipientEmail: string;
689
- customMessage?: string;
690
- }
236
+ export type SaveSignatureDto = components['schemas']['SaveSignatureDto'];
691
237
 
692
238
  // Expense DTOs
693
- export interface CreateExpenseRequest {
694
- type: ExpenseType;
695
- amount: number;
696
- description?: string;
697
- date: string;
698
- vendor?: string;
699
- receiptUrl?: string;
700
- driverId?: string;
701
- truckId?: string;
702
- trailerId?: string;
703
- runId?: string;
704
- }
705
-
706
- export interface UpdateExpenseRequest {
707
- type?: ExpenseType;
708
- amount?: number;
709
- description?: string;
710
- date?: string;
711
- vendor?: string;
712
- receiptUrl?: string;
713
- driverId?: string;
714
- truckId?: string;
715
- trailerId?: string;
716
- runId?: string;
717
- }
718
-
719
- export interface AssociateExpenseRequest {
720
- driverId?: string;
721
- truckId?: string;
722
- trailerId?: string;
723
- runId?: string;
724
- }
239
+ export type CreateExpenseDto = components['schemas']['CreateExpenseDto'];
240
+ export type UpdateExpenseDto = components['schemas']['UpdateExpenseDto'];
241
+ export type AssociateExpenseDto = components['schemas']['AssociateExpenseDto'];
242
+ export type RejectExpenseDto = components['schemas']['RejectExpenseDto'];
725
243
 
726
- export interface RejectExpenseRequest {
727
- reason: string;
728
- }
729
-
730
- export interface ExpenseFilters {
731
- type?: ExpenseType;
732
- status?: ExpenseStatus;
733
- driverId?: string;
734
- truckId?: string;
735
- runId?: string;
736
- fromDate?: string;
737
- toDate?: string;
738
- search?: string;
739
- page?: number;
740
- limit?: number;
741
- }
244
+ // Client Email DTOs
245
+ export type CreateClientEmailDto = components['schemas']['CreateClientEmailDto'];
246
+ export type UpdateClientEmailDto = components['schemas']['UpdateClientEmailDto'];
247
+ export type SendInvitationDto = components['schemas']['SendInvitationDto'];
742
248
 
743
249
  // Signing DTOs
744
- export interface SignDocumentRequest {
745
- signatureData: string;
746
- signedByName?: string;
747
- signedByEmail?: string;
748
- useSavedSignature?: boolean;
749
- }
250
+ export type SignDocumentDto = components['schemas']['SignDocumentDto'];
750
251
 
751
- // Inbound Email Filters
752
- export interface InboundEmailFilters {
753
- status?: InboundEmailStatus;
754
- clientEmailId?: string;
755
- fromDate?: string;
756
- toDate?: string;
757
- search?: string;
758
- page?: number;
759
- limit?: number;
760
- }
252
+ // ELD DTOs
253
+ export type UpdateManualHosDto = components['schemas']['UpdateManualHosDto'];
254
+ export type LinkEldProviderDto = components['schemas']['LinkEldProviderDto'];
761
255
 
762
256
  // ============================================================================
763
257
  // REQUEST TYPE ALIASES (for SDK compatibility)
764
258
  // ============================================================================
765
259
 
766
260
  export type LoginRequest = LoginDto;
767
- export type LoginResponse = AuthResponse;
768
261
  export type RegisterRequest = RegisterDto;
769
- export type RegisterResponse = AuthResponse;
770
-
771
262
  export type CreateRunRequest = CreateRunDto;
772
263
  export type UpdateRunRequest = UpdateRunDto;
773
-
774
264
  export type CreateStopRequest = CreateStopDto;
775
265
  export type UpdateStopRequest = UpdateStopDto;
776
-
777
266
  export type CreateCustomerRequest = CreateCustomerDto;
778
267
  export type UpdateCustomerRequest = UpdateCustomerDto;
779
-
780
268
  export type CreateMessageRequest = CreateMessageDto;
781
-
782
- // export type CreateStatementRequest = CreateStatementDto;
783
- // export type UpdateStatementRequest = UpdateStatementDto;
784
-
269
+ export type CreateStatementRequest = CreateStatementDto;
270
+ export type UpdateStatementRequest = UpdateStatementDto;
785
271
  export type CreateReferralRequest = CreateReferralDto;
786
272
  export type UpdateReferralRequest = UpdateReferralDto;
787
-
788
- // ============================================================================
789
- // PAGINATION TYPES
790
- // ============================================================================
791
-
792
- export interface PaginationMeta {
793
- total: number;
794
- page: number;
795
- limit: number;
796
- totalPages: number;
797
- }
798
-
799
- export interface PaginatedResponse<T> {
800
- data: T[];
801
- meta: PaginationMeta;
802
- }
803
-
804
- export type PaginatedRuns = PaginatedResponse<Run>;
805
- export type PaginatedStops = PaginatedResponse<Stop>;
806
- export type PaginatedDrivers = PaginatedResponse<User>;
807
- export type PaginatedTrucks = PaginatedResponse<Truck>;
808
- export type PaginatedTrailers = PaginatedResponse<Trailer>;
809
- export type PaginatedCustomers = PaginatedResponse<Customer>;
810
- // export type PaginatedStatements = PaginatedResponse<DriverStatement>;
811
- export type PaginatedMessages = PaginatedResponse<Message>;
812
- export type PaginatedExpenses = PaginatedResponse<Expense>;
813
- export type PaginatedInboundEmails = PaginatedResponse<InboundEmail>;
814
-
815
- // List response types for Email-to-Run feature
816
- export interface ClientEmailListResponse {
817
- data: ClientEmail[];
818
- total: number;
819
- }
820
-
821
- export interface InboundEmailListResponse {
822
- data: InboundEmail[];
823
- total: number;
824
- page: number;
825
- limit: number;
826
- }
827
-
828
- export interface ExpenseListResponse {
829
- data: Expense[];
830
- total: number;
831
- page: number;
832
- limit: number;
833
- pendingCount?: number;
834
- }
273
+ export type CreateExpenseRequest = CreateExpenseDto;
274
+ export type UpdateExpenseRequest = UpdateExpenseDto;
275
+ export type SendInvitationRequest = SendInvitationDto;
276
+ export type CreateClientEmailRequest = CreateClientEmailDto;
277
+ export type UpdateClientEmailRequest = UpdateClientEmailDto;
835
278
 
836
279
  // ============================================================================
837
280
  // TYPE HELPERS