@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/dist/exports.d.ts +94 -523
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +4 -9
- package/dist/exports.js.map +1 -1
- package/dist/index.d.ts +5971 -1998
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports.ts +144 -701
- package/src/index.ts +5971 -1998
package/src/exports.ts
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Type exports from auto-generated OpenAPI types.
|
|
3
3
|
*
|
|
4
|
-
* Type Flow: Prisma → API DTOs →
|
|
4
|
+
* Type Flow: Prisma Schema → API DTOs → Swagger → /docs-json → openapi-typescript → here
|
|
5
5
|
*
|
|
6
|
-
* IMPORTANT:
|
|
7
|
-
* -
|
|
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
|
|
16
|
+
// ENUMS - Extracted from Response DTOs
|
|
22
17
|
// ============================================================================
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export type
|
|
26
|
-
|
|
27
|
-
export type
|
|
28
|
-
|
|
29
|
-
export type
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
32
|
+
// ENTITY RESPONSE TYPES
|
|
124
33
|
// ============================================================================
|
|
125
34
|
|
|
126
|
-
//
|
|
127
|
-
export type
|
|
128
|
-
export type
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
export type
|
|
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
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
//
|
|
139
|
-
export type
|
|
140
|
-
export type
|
|
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
|
-
//
|
|
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
|
-
|
|
316
|
-
|
|
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
|
-
|
|
335
|
-
|
|
336
|
-
|
|
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
|
-
|
|
352
|
-
|
|
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
|
-
//
|
|
65
|
+
// TYPES NOW GENERATED FROM SWAGGER (formerly manual)
|
|
382
66
|
// ============================================================================
|
|
383
67
|
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
409
|
-
|
|
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
|
-
|
|
426
|
-
|
|
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
|
-
|
|
436
|
-
|
|
437
|
-
|
|
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
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
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
|
-
//
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
}
|
|
95
|
+
// Customer
|
|
96
|
+
export type Customer = components['schemas']['CustomerResponseDto'];
|
|
97
|
+
export type CustomerList = components['schemas']['CustomerListResponseDto'];
|
|
543
98
|
|
|
544
|
-
//
|
|
545
|
-
|
|
546
|
-
|
|
99
|
+
// Message
|
|
100
|
+
export type Message = components['schemas']['MessageResponseDto'];
|
|
101
|
+
export type MessageList = components['schemas']['MessageListResponseDto'];
|
|
547
102
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
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
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
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
|
-
|
|
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
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
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
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
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
|
|
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
|
-
|
|
648
|
-
|
|
649
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
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
|
-
|
|
727
|
-
|
|
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
|
|
745
|
-
signatureData: string;
|
|
746
|
-
signedByName?: string;
|
|
747
|
-
signedByEmail?: string;
|
|
748
|
-
useSavedSignature?: boolean;
|
|
749
|
-
}
|
|
250
|
+
export type SignDocumentDto = components['schemas']['SignDocumentDto'];
|
|
750
251
|
|
|
751
|
-
//
|
|
752
|
-
export
|
|
753
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|