@bisondesk/core-sdk 1.0.535 → 1.0.537
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/lib/apis/transports.d.ts +9 -0
- package/lib/apis/transports.d.ts.map +1 -0
- package/lib/apis/transports.js +47 -0
- package/lib/apis/transports.js.map +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +1 -0
- package/lib/constants.js.map +1 -1
- package/lib/types/crm.d.ts +2 -1
- package/lib/types/crm.d.ts.map +1 -1
- package/lib/types/crm.js +1 -0
- package/lib/types/crm.js.map +1 -1
- package/lib/types/opportunities.d.ts +2 -0
- package/lib/types/opportunities.d.ts.map +1 -1
- package/lib/types/opportunities.js.map +1 -1
- package/lib/types/transports.d.ts +154 -0
- package/lib/types/transports.d.ts.map +1 -0
- package/lib/types/transports.js +40 -0
- package/lib/types/transports.js.map +1 -0
- package/lib/types/vehicles.d.ts +2 -0
- package/lib/types/vehicles.d.ts.map +1 -1
- package/lib/types/vehicles.js.map +1 -1
- package/package.json +1 -1
- package/src/apis/transports.ts +86 -0
- package/src/constants.ts +2 -0
- package/src/types/comparables.js +2 -0
- package/src/types/comparables.js.map +1 -0
- package/src/types/crm.js +50 -0
- package/src/types/crm.js.map +1 -0
- package/src/types/crm.ts +1 -0
- package/src/types/fields.js +2 -0
- package/src/types/fields.js.map +1 -0
- package/src/types/insights.js +2 -0
- package/src/types/insights.js.map +1 -0
- package/src/types/internet-vehicles.js +2 -0
- package/src/types/internet-vehicles.js.map +1 -0
- package/src/types/journeys.js +2 -0
- package/src/types/journeys.js.map +1 -0
- package/src/types/leasing-settings.js +7 -0
- package/src/types/leasing-settings.js.map +1 -0
- package/src/types/offers.js +56 -0
- package/src/types/offers.js.map +1 -0
- package/src/types/opportunities.js +106 -0
- package/src/types/opportunities.js.map +1 -0
- package/src/types/opportunities.ts +2 -0
- package/src/types/payments.js +7 -0
- package/src/types/payments.js.map +1 -0
- package/src/types/quotes.js +42 -0
- package/src/types/quotes.js.map +1 -0
- package/src/types/reservations.js +5 -0
- package/src/types/reservations.js.map +1 -0
- package/src/types/search.js +2 -0
- package/src/types/search.js.map +1 -0
- package/src/types/tenants.js +20 -0
- package/src/types/tenants.js.map +1 -0
- package/src/types/transports.ts +229 -0
- package/src/types/utils.js +2 -0
- package/src/types/utils.js.map +1 -0
- package/src/types/vehicles.js +94 -0
- package/src/types/vehicles.js.map +1 -0
- package/src/types/vehicles.ts +2 -0
- package/src/utils/opportunities.js +48 -0
- package/src/utils/opportunities.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { GPSCoord } from '@bisondesk/commons-sdk/locations';
|
|
2
|
+
import { NextList } from '@bisondesk/commons-sdk/types';
|
|
3
|
+
import { BaseSearchRequest, SortOrder } from './search.js';
|
|
4
|
+
import { ReferenceData } from './utils.js';
|
|
5
|
+
import { Organization } from './crm.js';
|
|
6
|
+
import { Opportunity } from './opportunities.js';
|
|
7
|
+
import { Vehicle, VehiclePurchase } from './vehicles.js';
|
|
8
|
+
|
|
9
|
+
/******
|
|
10
|
+
* Transport Enums
|
|
11
|
+
******/
|
|
12
|
+
|
|
13
|
+
export enum TransportType {
|
|
14
|
+
PURCHASE_PICK_UP = 'purchase_pick_up',
|
|
15
|
+
SALE_DELIVERY = 'sale_delivery',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export enum TransportStatus {
|
|
19
|
+
TODO = 'todo',
|
|
20
|
+
PLANNING = 'planning',
|
|
21
|
+
READY = 'ready',
|
|
22
|
+
ONGOING = 'ongoing',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export enum InternalTransportRequestType {
|
|
26
|
+
HARBOR = 'harbor',
|
|
27
|
+
ADDRESS = 'address',
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export enum TransportActions {
|
|
31
|
+
UPDATE_STATUS = 'update_status',
|
|
32
|
+
SET_TRANSPORT_REQUEST = 'set_transport_request',
|
|
33
|
+
CANCEL = 'cancel',
|
|
34
|
+
MARK_DONE = 'mark_done',
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/******
|
|
38
|
+
* Status Order & Kanban Columns
|
|
39
|
+
******/
|
|
40
|
+
|
|
41
|
+
export const TransportStatusOrder: TransportStatus[] = [
|
|
42
|
+
TransportStatus.TODO,
|
|
43
|
+
TransportStatus.PLANNING,
|
|
44
|
+
TransportStatus.READY,
|
|
45
|
+
TransportStatus.ONGOING,
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
export const TransportKanbanDoneColumnId = 'done';
|
|
49
|
+
|
|
50
|
+
export const TransportKanbanEndColumns: string[] = [TransportKanbanDoneColumnId];
|
|
51
|
+
|
|
52
|
+
export const TransportKanbanColumns = [...TransportStatusOrder, ...TransportKanbanEndColumns];
|
|
53
|
+
|
|
54
|
+
/******
|
|
55
|
+
* Internal Transport Request
|
|
56
|
+
******/
|
|
57
|
+
|
|
58
|
+
export type TransportShipment = {
|
|
59
|
+
shippingCompanyId: string;
|
|
60
|
+
deliveryLocationId: string;
|
|
61
|
+
bookingReference: string;
|
|
62
|
+
shipName?: string;
|
|
63
|
+
destinationPort?: string;
|
|
64
|
+
ets?: string;
|
|
65
|
+
eta?: string;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export type TransportAddress = {
|
|
69
|
+
addressLine1: string;
|
|
70
|
+
addressLine2?: string;
|
|
71
|
+
city: string;
|
|
72
|
+
postalCode: string;
|
|
73
|
+
country: string;
|
|
74
|
+
gps?: GPSCoord;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export type InternalTransportRequest = {
|
|
78
|
+
type: InternalTransportRequestType;
|
|
79
|
+
shipment?: TransportShipment;
|
|
80
|
+
address?: TransportAddress;
|
|
81
|
+
notes?: string;
|
|
82
|
+
createdAt: string;
|
|
83
|
+
createdBy: string;
|
|
84
|
+
updatedAt: string;
|
|
85
|
+
updatedBy: string;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export type NewInternalTransportRequest = Omit<
|
|
89
|
+
InternalTransportRequest,
|
|
90
|
+
'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy'
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
export type UpdateInternalTransportRequest = Partial<
|
|
94
|
+
Pick<InternalTransportRequest, 'shipment' | 'address' | 'notes'>
|
|
95
|
+
> & {
|
|
96
|
+
type: InternalTransportRequestType;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/******
|
|
100
|
+
* Transport Status Log Fields
|
|
101
|
+
******/
|
|
102
|
+
|
|
103
|
+
export type TransportStatusLogFields = {
|
|
104
|
+
todoAt?: string;
|
|
105
|
+
todoBy?: string;
|
|
106
|
+
planningAt?: string;
|
|
107
|
+
planningBy?: string;
|
|
108
|
+
readyAt?: string;
|
|
109
|
+
readyBy?: string;
|
|
110
|
+
ongoingAt?: string;
|
|
111
|
+
ongoingBy?: string;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const transportStatusToDateFieldMap: Record<
|
|
115
|
+
TransportStatus,
|
|
116
|
+
{ date: keyof TransportStatusLogFields; author: keyof TransportStatusLogFields }
|
|
117
|
+
> = {
|
|
118
|
+
[TransportStatus.TODO]: { date: 'todoAt', author: 'todoBy' },
|
|
119
|
+
[TransportStatus.PLANNING]: { date: 'planningAt', author: 'planningBy' },
|
|
120
|
+
[TransportStatus.READY]: { date: 'readyAt', author: 'readyBy' },
|
|
121
|
+
[TransportStatus.ONGOING]: { date: 'ongoingAt', author: 'ongoingBy' },
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/******
|
|
125
|
+
* Transport
|
|
126
|
+
******/
|
|
127
|
+
|
|
128
|
+
export type Transport = TransportStatusLogFields & {
|
|
129
|
+
id: string;
|
|
130
|
+
vehicleId: string;
|
|
131
|
+
opportunityId?: string;
|
|
132
|
+
administrativeNumber?: string;
|
|
133
|
+
type: TransportType;
|
|
134
|
+
status: TransportStatus;
|
|
135
|
+
cancelled: boolean;
|
|
136
|
+
cancelledAt?: string;
|
|
137
|
+
cancelledBy?: string;
|
|
138
|
+
doneAt?: string;
|
|
139
|
+
doneBy?: string;
|
|
140
|
+
tenantId: string;
|
|
141
|
+
branchId: string;
|
|
142
|
+
internalTransportRequest?: InternalTransportRequest;
|
|
143
|
+
createdAt: string;
|
|
144
|
+
createdBy: string;
|
|
145
|
+
updatedAt: string;
|
|
146
|
+
updatedBy: string;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export type NewTransport = {
|
|
150
|
+
vehicleId: string;
|
|
151
|
+
opportunityId?: string;
|
|
152
|
+
administrativeNumber?: string;
|
|
153
|
+
type: TransportType;
|
|
154
|
+
tenantId: string;
|
|
155
|
+
branchId: string;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export type UpdateTransport = Partial<
|
|
159
|
+
Pick<Transport, 'status' | 'administrativeNumber' | 'branchId'>
|
|
160
|
+
>;
|
|
161
|
+
|
|
162
|
+
/******
|
|
163
|
+
* Search Transport
|
|
164
|
+
******/
|
|
165
|
+
|
|
166
|
+
export type SearchTransport = {
|
|
167
|
+
transport: Transport;
|
|
168
|
+
vehicle: Vehicle;
|
|
169
|
+
opportunity?: Opportunity;
|
|
170
|
+
purchase?: VehiclePurchase;
|
|
171
|
+
org?: Organization;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
/******
|
|
175
|
+
* Kanban
|
|
176
|
+
******/
|
|
177
|
+
|
|
178
|
+
export type TransportKanbanColumn = {
|
|
179
|
+
status: string; // TransportStatus | 'done'
|
|
180
|
+
results: SearchTransport[];
|
|
181
|
+
totalCount: number;
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export type MSearchTransportKanbanColumn = {
|
|
185
|
+
column: TransportKanbanColumn;
|
|
186
|
+
nextToken?: string;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export type KanbanTransportSearchRequest = BaseSearchRequest & {
|
|
190
|
+
nextTokens?: Record<string, string | undefined>;
|
|
191
|
+
statusSortBy?: Record<string, { fieldId: string; order: SortOrder }[]>;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export type KanbanTransportNextList = Omit<
|
|
195
|
+
NextList<TransportKanbanColumn, ReferenceData>,
|
|
196
|
+
'nextToken'
|
|
197
|
+
> & {
|
|
198
|
+
nextTokens?: Record<string, string | undefined>;
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
/******
|
|
202
|
+
* Transport Events
|
|
203
|
+
******/
|
|
204
|
+
|
|
205
|
+
export type TransportCreateEvent = {
|
|
206
|
+
action: 'created';
|
|
207
|
+
data: Transport;
|
|
208
|
+
previousData?: undefined;
|
|
209
|
+
tenantId: string;
|
|
210
|
+
userId: string;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
export type TransportUpdateEvent = {
|
|
214
|
+
action: 'updated';
|
|
215
|
+
data: Transport;
|
|
216
|
+
previousData: Transport;
|
|
217
|
+
tenantId: string;
|
|
218
|
+
userId: string;
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export type TransportCancelEvent = {
|
|
222
|
+
action: 'cancelled';
|
|
223
|
+
data: Transport;
|
|
224
|
+
previousData: Transport;
|
|
225
|
+
tenantId: string;
|
|
226
|
+
userId: string;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
export type TransportEvent = TransportCreateEvent | TransportUpdateEvent | TransportCancelEvent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export var VehicleRoles;
|
|
2
|
+
(function (VehicleRoles) {
|
|
3
|
+
VehicleRoles["SALE"] = "SALE";
|
|
4
|
+
VehicleRoles["OWN_USE"] = "OWN_USE";
|
|
5
|
+
VehicleRoles["RENTAL"] = "RENTAL";
|
|
6
|
+
VehicleRoles["BUILD"] = "BUILD";
|
|
7
|
+
VehicleRoles["UNKNOWN"] = "UNKNOWN";
|
|
8
|
+
VehicleRoles["BANK_FINANCE"] = "BANK_FINANCE";
|
|
9
|
+
})(VehicleRoles || (VehicleRoles = {}));
|
|
10
|
+
export var VehicleFuelType;
|
|
11
|
+
(function (VehicleFuelType) {
|
|
12
|
+
VehicleFuelType["Petrol"] = "PETROL";
|
|
13
|
+
VehicleFuelType["Diesel"] = "DIESEL";
|
|
14
|
+
VehicleFuelType["LPG"] = "LPG";
|
|
15
|
+
VehicleFuelType["LPG_G3"] = "LPG_G3";
|
|
16
|
+
VehicleFuelType["Electric"] = "ELECTRIC";
|
|
17
|
+
VehicleFuelType["CNG"] = "CNG";
|
|
18
|
+
VehicleFuelType["Hydrogen"] = "HYDROGEN";
|
|
19
|
+
VehicleFuelType["BioEthanol"] = "BIO_ETHANOL";
|
|
20
|
+
VehicleFuelType["BioDiesel"] = "BIO_DIESEL";
|
|
21
|
+
VehicleFuelType["E85"] = "E85";
|
|
22
|
+
VehicleFuelType["HCNG"] = "HCNG";
|
|
23
|
+
VehicleFuelType["LPG_Petrol"] = "LPG_PETROL";
|
|
24
|
+
VehicleFuelType["LPG_Diesel"] = "LPG_DIESEL";
|
|
25
|
+
VehicleFuelType["LPG_G3_Petrol"] = "LPG_G3_PETROL";
|
|
26
|
+
VehicleFuelType["LPG_G3_Diesel"] = "LPG_G3_DIESEL";
|
|
27
|
+
VehicleFuelType["Electric_Diesel"] = "ELECTRIC_DIESEL";
|
|
28
|
+
VehicleFuelType["Electric_Petrol"] = "ELECTRIC_PETROL";
|
|
29
|
+
VehicleFuelType["Hybrid"] = "HYBRID";
|
|
30
|
+
VehicleFuelType["Other"] = "OTHER";
|
|
31
|
+
})(VehicleFuelType || (VehicleFuelType = {}));
|
|
32
|
+
export var VehicleTachoTypes;
|
|
33
|
+
(function (VehicleTachoTypes) {
|
|
34
|
+
VehicleTachoTypes["Analog"] = "ANALOG";
|
|
35
|
+
VehicleTachoTypes["Digital"] = "DIGITAL";
|
|
36
|
+
VehicleTachoTypes["SmartTacho1"] = "SMART_TACHO_1";
|
|
37
|
+
VehicleTachoTypes["SmartTacho2"] = "SMART_TACHO_2";
|
|
38
|
+
})(VehicleTachoTypes || (VehicleTachoTypes = {}));
|
|
39
|
+
export var SearchVehicleSaleDealStatus;
|
|
40
|
+
(function (SearchVehicleSaleDealStatus) {
|
|
41
|
+
SearchVehicleSaleDealStatus["NotSold"] = "NOT_SOLD";
|
|
42
|
+
SearchVehicleSaleDealStatus["Reserved"] = "RESERVED";
|
|
43
|
+
SearchVehicleSaleDealStatus["Sold"] = "SOLD";
|
|
44
|
+
})(SearchVehicleSaleDealStatus || (SearchVehicleSaleDealStatus = {}));
|
|
45
|
+
export var VehiclePurchaseDealStatus;
|
|
46
|
+
(function (VehiclePurchaseDealStatus) {
|
|
47
|
+
VehiclePurchaseDealStatus["Marketing"] = "MARKETING";
|
|
48
|
+
VehiclePurchaseDealStatus["PurchaseEvaluation"] = "PURCHASE_EVALUATION";
|
|
49
|
+
VehiclePurchaseDealStatus["PurchaseAgreed"] = "PURCHASE_AGREED";
|
|
50
|
+
VehiclePurchaseDealStatus["FirstPaymentAllowed"] = "FIRST_PAYMENT_ALLOWED";
|
|
51
|
+
VehiclePurchaseDealStatus["FirstPaymentSent"] = "FIRST_PAYMENT_SENT";
|
|
52
|
+
VehiclePurchaseDealStatus["FullPaymentAllowed"] = "FULL_PAYMENT_ALLOWED";
|
|
53
|
+
VehiclePurchaseDealStatus["FullPaymentSent"] = "FULL_PAYMENT_SENT";
|
|
54
|
+
})(VehiclePurchaseDealStatus || (VehiclePurchaseDealStatus = {}));
|
|
55
|
+
export var VehiclePurchaseLogisticsStatus;
|
|
56
|
+
(function (VehiclePurchaseLogisticsStatus) {
|
|
57
|
+
VehiclePurchaseLogisticsStatus["AtOrigin"] = "AT_ORIGIN";
|
|
58
|
+
VehiclePurchaseLogisticsStatus["Arrived"] = "ARRIVED";
|
|
59
|
+
VehiclePurchaseLogisticsStatus["CheckedIn"] = "CHECKED_IN";
|
|
60
|
+
})(VehiclePurchaseLogisticsStatus || (VehiclePurchaseLogisticsStatus = {}));
|
|
61
|
+
export var VehiclePurchaseDeliveryType;
|
|
62
|
+
(function (VehiclePurchaseDeliveryType) {
|
|
63
|
+
VehiclePurchaseDeliveryType["PickUp"] = "PICK_UP";
|
|
64
|
+
VehiclePurchaseDeliveryType["DropOff"] = "DROP_OFF";
|
|
65
|
+
})(VehiclePurchaseDeliveryType || (VehiclePurchaseDeliveryType = {}));
|
|
66
|
+
export var VehicleActions;
|
|
67
|
+
(function (VehicleActions) {
|
|
68
|
+
VehicleActions["EditAdminDocs"] = "edit_admin_docs";
|
|
69
|
+
VehicleActions["EditEngineeringDocs"] = "edit_engineering_docs";
|
|
70
|
+
VehicleActions["EditMarketing"] = "edit_marketing";
|
|
71
|
+
VehicleActions["EditMedia"] = "edit_media";
|
|
72
|
+
VehicleActions["EditPictures"] = "edit_pictures";
|
|
73
|
+
VehicleActions["EditPrices"] = "edit_prices";
|
|
74
|
+
VehicleActions["EditPurchaseDeal"] = "edit_purchase_deal";
|
|
75
|
+
VehicleActions["EditPurchaseLogistics"] = "edit_purchase_logistics";
|
|
76
|
+
VehicleActions["EditSpecs"] = "edit_specs";
|
|
77
|
+
VehicleActions["EditVideos"] = "edit_videos";
|
|
78
|
+
VehicleActions["ViewLeads"] = "view_leads";
|
|
79
|
+
VehicleActions["ViewSimilarOnline"] = "view_similar_online";
|
|
80
|
+
VehicleActions["ViewPurchase"] = "view_purchase";
|
|
81
|
+
VehicleActions["ViewPriceHistory"] = "view_price_history";
|
|
82
|
+
VehicleActions["DeleteVehicle"] = "delete_vehicle";
|
|
83
|
+
})(VehicleActions || (VehicleActions = {}));
|
|
84
|
+
export var PurchaseActions;
|
|
85
|
+
(function (PurchaseActions) {
|
|
86
|
+
PurchaseActions["ViewDeal"] = "view_deal";
|
|
87
|
+
PurchaseActions["ViewSupplierOrganization"] = "view_supplier_organization";
|
|
88
|
+
PurchaseActions["ViewContact"] = "view_contact";
|
|
89
|
+
PurchaseActions["ViewLegalAddress"] = "view_legal_address";
|
|
90
|
+
PurchaseActions["ViewPickupAddress"] = "view_pickup_address";
|
|
91
|
+
PurchaseActions["ViewEstimatedCosts"] = "view_estimated_costs";
|
|
92
|
+
PurchaseActions["ViewFinanceDocuments"] = "view_finance_documents";
|
|
93
|
+
})(PurchaseActions || (PurchaseActions = {}));
|
|
94
|
+
//# sourceMappingURL=vehicles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicles.js","sourceRoot":"","sources":["vehicles.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,6CAA6B,CAAA;AAC/B,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED,MAAM,CAAN,IAAY,eAoBX;AApBD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,wCAAqB,CAAA;IACrB,8BAAW,CAAA;IACX,wCAAqB,CAAA;IACrB,6CAA0B,CAAA;IAC1B,2CAAwB,CAAA;IACxB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;IAC/B,sDAAmC,CAAA;IACnC,sDAAmC,CAAA;IACnC,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACjB,CAAC,EApBW,eAAe,KAAf,eAAe,QAoB1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;AAC/B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAkLD,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,mDAAoB,CAAA;IACpB,oDAAqB,CAAA;IACrB,4CAAa,CAAA;AACf,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAuWD,MAAM,CAAN,IAAY,yBAQX;AARD,WAAY,yBAAyB;IACnC,oDAAuB,CAAA;IACvB,uEAA0C,CAAA;IAC1C,+DAAkC,CAAA;IAClC,0EAA6C,CAAA;IAC7C,oEAAuC,CAAA;IACvC,wEAA2C,CAAA;IAC3C,kEAAqC,CAAA;AACvC,CAAC,EARW,yBAAyB,KAAzB,yBAAyB,QAQpC;AAED,MAAM,CAAN,IAAY,8BAIX;AAJD,WAAY,8BAA8B;IACxC,wDAAsB,CAAA;IACtB,qDAAmB,CAAA;IACnB,0DAAwB,CAAA;AAC1B,CAAC,EAJW,8BAA8B,KAA9B,8BAA8B,QAIzC;AAED,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,iDAAkB,CAAA;IAClB,mDAAoB,CAAA;AACtB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAwGD,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACxB,mDAAiC,CAAA;IACjC,+DAA6C,CAAA;IAC7C,kDAAgC,CAAA;IAChC,0CAAwB,CAAA;IACxB,gDAA8B,CAAA;IAC9B,4CAA0B,CAAA;IAC1B,yDAAuC,CAAA;IACvC,mEAAiD,CAAA;IACjD,0CAAwB,CAAA;IACxB,4CAA0B,CAAA;IAC1B,0CAAwB,CAAA;IACxB,2DAAyC,CAAA;IACzC,gDAA8B,CAAA;IAC9B,yDAAuC,CAAA;IACvC,kDAAgC,CAAA;AAClC,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB;AAED,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,0EAAuD,CAAA;IACvD,+CAA4B,CAAA;IAC5B,0DAAuC,CAAA;IACvC,4DAAyC,CAAA;IACzC,8DAA2C,CAAA;IAC3C,kEAA+C,CAAA;AACjD,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B"}
|
package/src/types/vehicles.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import { BaseEvent } from './internal-events.js';
|
|
12
12
|
import { VehicleSaleLogisticsStatus } from './opportunities.js';
|
|
13
13
|
import { OpportunityReservation } from './reservations.js';
|
|
14
|
+
import { Transport } from './transports.js';
|
|
14
15
|
import { DataRecord } from './utils.js';
|
|
15
16
|
import { VehicleBusinessOverviewXL } from './vehicle-performance.js';
|
|
16
17
|
import { VehicleSaleInfo } from './vehicle-sales.js';
|
|
@@ -588,6 +589,7 @@ export type VehicleBff = {
|
|
|
588
589
|
publishedOnWebsiteAt?: string;
|
|
589
590
|
numPlatformsPublished: number;
|
|
590
591
|
};
|
|
592
|
+
transports?: Transport[];
|
|
591
593
|
};
|
|
592
594
|
|
|
593
595
|
export type VehiclesByChassisNumberRequest = {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { OpportunityStatus, OpportunityStatusOrder } from '../types/opportunities.js';
|
|
2
|
+
const compareOpportunityStatus = (input) => {
|
|
3
|
+
const { currentStatus, referenceStatus } = input;
|
|
4
|
+
const currentStatusIdx = OpportunityStatusOrder.indexOf(currentStatus);
|
|
5
|
+
const referenceStatusIdx = OpportunityStatusOrder.indexOf(referenceStatus);
|
|
6
|
+
return {
|
|
7
|
+
currentStatusIdx,
|
|
8
|
+
referenceStatusIdx,
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export const getPreviousStatus = (currentStatus) => {
|
|
12
|
+
const currentIndex = OpportunityStatusOrder.indexOf(currentStatus);
|
|
13
|
+
if (currentIndex === 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
return OpportunityStatusOrder[currentIndex - 1];
|
|
17
|
+
};
|
|
18
|
+
export const getNextStatus = (status) => {
|
|
19
|
+
const statusIndex = OpportunityStatusOrder.indexOf(status);
|
|
20
|
+
if (statusIndex >= OpportunityStatusOrder.length - 1) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
return OpportunityStatusOrder[statusIndex + 1];
|
|
24
|
+
};
|
|
25
|
+
export const isSameOrAfterReferenceOpportunityStatus = (input) => {
|
|
26
|
+
const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);
|
|
27
|
+
return currentStatusIdx >= referenceStatusIdx;
|
|
28
|
+
};
|
|
29
|
+
export const isAfterReferenceOpportunityStatus = (input) => {
|
|
30
|
+
const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);
|
|
31
|
+
return currentStatusIdx > referenceStatusIdx;
|
|
32
|
+
};
|
|
33
|
+
export const isSameOrBeforeReferenceOpportunityStatus = (input) => {
|
|
34
|
+
const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);
|
|
35
|
+
return currentStatusIdx <= referenceStatusIdx;
|
|
36
|
+
};
|
|
37
|
+
export const isBeforeReferenceOpportunityStatus = (input) => {
|
|
38
|
+
const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);
|
|
39
|
+
return currentStatusIdx < referenceStatusIdx;
|
|
40
|
+
};
|
|
41
|
+
export const isOpportunityLost = (input) => input.lostAt != null;
|
|
42
|
+
export const getOpportunityReservedStatus = () => [
|
|
43
|
+
OpportunityStatus.REVIEW,
|
|
44
|
+
OpportunityStatus.PREPARATION,
|
|
45
|
+
OpportunityStatus.DELIVERY,
|
|
46
|
+
];
|
|
47
|
+
export const isOpportunityReserved = (input) => getOpportunityReservedStatus().includes(input.status);
|
|
48
|
+
//# sourceMappingURL=opportunities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opportunities.js","sourceRoot":"","sources":["opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOnG,MAAM,wBAAwB,GAAG,CAAC,KAAmB,EAAE,EAAE;IACvD,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAE3E,OAAO;QACL,gBAAgB;QAChB,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,aAAgC,EACD,EAAE;IACjC,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,OAAO,sBAAsB,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAyB,EAAiC,EAAE;IACxF,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,WAAW,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO;IACT,CAAC;IACD,OAAO,sBAAsB,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,KAAmB,EAAW,EAAE;IACtF,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjF,OAAO,gBAAgB,IAAI,kBAAkB,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAmB,EAAW,EAAE;IAChF,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjF,OAAO,gBAAgB,GAAG,kBAAkB,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,KAAmB,EAAW,EAAE;IACvF,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjF,OAAO,gBAAgB,IAAI,kBAAkB,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,KAAmB,EAAW,EAAE;IACjF,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjF,OAAO,gBAAgB,GAAG,kBAAkB,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAkB,EAAW,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;AAEvF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAwB,EAAE,CAAC;IACrE,iBAAiB,CAAC,MAAM;IACxB,iBAAiB,CAAC,WAAW;IAC7B,iBAAiB,CAAC,QAAQ;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAkB,EAAW,EAAE,CACnE,4BAA4B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC"}
|