@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.
Files changed (64) hide show
  1. package/lib/apis/transports.d.ts +9 -0
  2. package/lib/apis/transports.d.ts.map +1 -0
  3. package/lib/apis/transports.js +47 -0
  4. package/lib/apis/transports.js.map +1 -0
  5. package/lib/constants.d.ts +1 -0
  6. package/lib/constants.d.ts.map +1 -1
  7. package/lib/constants.js +1 -0
  8. package/lib/constants.js.map +1 -1
  9. package/lib/types/crm.d.ts +2 -1
  10. package/lib/types/crm.d.ts.map +1 -1
  11. package/lib/types/crm.js +1 -0
  12. package/lib/types/crm.js.map +1 -1
  13. package/lib/types/opportunities.d.ts +2 -0
  14. package/lib/types/opportunities.d.ts.map +1 -1
  15. package/lib/types/opportunities.js.map +1 -1
  16. package/lib/types/transports.d.ts +154 -0
  17. package/lib/types/transports.d.ts.map +1 -0
  18. package/lib/types/transports.js +40 -0
  19. package/lib/types/transports.js.map +1 -0
  20. package/lib/types/vehicles.d.ts +2 -0
  21. package/lib/types/vehicles.d.ts.map +1 -1
  22. package/lib/types/vehicles.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/apis/transports.ts +86 -0
  25. package/src/constants.ts +2 -0
  26. package/src/types/comparables.js +2 -0
  27. package/src/types/comparables.js.map +1 -0
  28. package/src/types/crm.js +50 -0
  29. package/src/types/crm.js.map +1 -0
  30. package/src/types/crm.ts +1 -0
  31. package/src/types/fields.js +2 -0
  32. package/src/types/fields.js.map +1 -0
  33. package/src/types/insights.js +2 -0
  34. package/src/types/insights.js.map +1 -0
  35. package/src/types/internet-vehicles.js +2 -0
  36. package/src/types/internet-vehicles.js.map +1 -0
  37. package/src/types/journeys.js +2 -0
  38. package/src/types/journeys.js.map +1 -0
  39. package/src/types/leasing-settings.js +7 -0
  40. package/src/types/leasing-settings.js.map +1 -0
  41. package/src/types/offers.js +56 -0
  42. package/src/types/offers.js.map +1 -0
  43. package/src/types/opportunities.js +106 -0
  44. package/src/types/opportunities.js.map +1 -0
  45. package/src/types/opportunities.ts +2 -0
  46. package/src/types/payments.js +7 -0
  47. package/src/types/payments.js.map +1 -0
  48. package/src/types/quotes.js +42 -0
  49. package/src/types/quotes.js.map +1 -0
  50. package/src/types/reservations.js +5 -0
  51. package/src/types/reservations.js.map +1 -0
  52. package/src/types/search.js +2 -0
  53. package/src/types/search.js.map +1 -0
  54. package/src/types/tenants.js +20 -0
  55. package/src/types/tenants.js.map +1 -0
  56. package/src/types/transports.ts +229 -0
  57. package/src/types/utils.js +2 -0
  58. package/src/types/utils.js.map +1 -0
  59. package/src/types/vehicles.js +94 -0
  60. package/src/types/vehicles.js.map +1 -0
  61. package/src/types/vehicles.ts +2 -0
  62. package/src/utils/opportunities.js +48 -0
  63. package/src/utils/opportunities.js.map +1 -0
  64. 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,2 @@
1
+ export * from '@bisondesk/commons-sdk/utils';
2
+ //# sourceMappingURL=utils.js.map
@@ -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"}
@@ -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"}