@bisondesk/core-sdk 1.0.616 → 1.0.617

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 (85) hide show
  1. package/lib/types/reports-leasing.d.ts +1 -0
  2. package/lib/types/reports-leasing.d.ts.map +1 -1
  3. package/lib/types/reports-leasing.js.map +1 -1
  4. package/lib/types/reports-sales.d.ts +9 -0
  5. package/lib/types/reports-sales.d.ts.map +1 -1
  6. package/lib/types/reports-sales.js.map +1 -1
  7. package/lib/types/tenants.d.ts +5 -0
  8. package/lib/types/tenants.d.ts.map +1 -1
  9. package/lib/types/tenants.js +1 -0
  10. package/lib/types/tenants.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/types/activities.js +13 -0
  13. package/src/types/activities.js.map +1 -0
  14. package/src/types/comparables.js +2 -0
  15. package/src/types/comparables.js.map +1 -0
  16. package/src/types/crm.js +58 -0
  17. package/src/types/crm.js.map +1 -0
  18. package/src/types/dashboard.js +2 -0
  19. package/src/types/dashboard.js.map +1 -0
  20. package/src/types/definitions.js +2 -0
  21. package/src/types/definitions.js.map +1 -0
  22. package/src/types/fields.js +2 -0
  23. package/src/types/fields.js.map +1 -0
  24. package/src/types/insights.js +2 -0
  25. package/src/types/insights.js.map +1 -0
  26. package/src/types/interests.js +6 -0
  27. package/src/types/interests.js.map +1 -0
  28. package/src/types/internal-events.js +18 -0
  29. package/src/types/internal-events.js.map +1 -0
  30. package/src/types/internet-opportunities.js +2 -0
  31. package/src/types/internet-opportunities.js.map +1 -0
  32. package/src/types/internet-vehicles.js +2 -0
  33. package/src/types/internet-vehicles.js.map +1 -0
  34. package/src/types/leasing-administration.js +2 -0
  35. package/src/types/leasing-administration.js.map +1 -0
  36. package/src/types/leasing-debtors.js +2 -0
  37. package/src/types/leasing-debtors.js.map +1 -0
  38. package/src/types/leasing-search.js +2 -0
  39. package/src/types/leasing-search.js.map +1 -0
  40. package/src/types/leasing-settings.js +7 -0
  41. package/src/types/leasing-settings.js.map +1 -0
  42. package/src/types/leasing.js +38 -0
  43. package/src/types/leasing.js.map +1 -0
  44. package/src/types/marketing.js +35 -0
  45. package/src/types/marketing.js.map +1 -0
  46. package/src/types/offers.js +56 -0
  47. package/src/types/opportunities.js +107 -0
  48. package/src/types/opportunities.js.map +1 -0
  49. package/src/types/payments.js +7 -0
  50. package/src/types/picklists.js +2 -0
  51. package/src/types/picklists.js.map +1 -0
  52. package/src/types/quotes.js +42 -0
  53. package/src/types/recently-viewed.js +2 -0
  54. package/src/types/recently-viewed.js.map +1 -0
  55. package/src/types/reports-leasing.ts +17 -4
  56. package/src/types/reports-sales.ts +16 -0
  57. package/src/types/reservations.js +5 -0
  58. package/src/types/reservations.js.map +1 -0
  59. package/src/types/roi-ratings.js +5 -0
  60. package/src/types/roi-ratings.js.map +1 -0
  61. package/src/types/saved-filters.js +9 -0
  62. package/src/types/saved-filters.js.map +1 -0
  63. package/src/types/search.js +2 -0
  64. package/src/types/search.js.map +1 -0
  65. package/src/types/settings.js +2 -0
  66. package/src/types/settings.js.map +1 -0
  67. package/src/types/templates.js +2 -0
  68. package/src/types/templates.js.map +1 -0
  69. package/src/types/tenants.js +21 -0
  70. package/src/types/tenants.js.map +1 -0
  71. package/src/types/tenants.ts +13 -0
  72. package/src/types/user-performance.js +7 -0
  73. package/src/types/user-performance.js.map +1 -0
  74. package/src/types/utils.js +2 -0
  75. package/src/types/validation.js +2 -0
  76. package/src/types/validation.js.map +1 -0
  77. package/src/types/vehicle-sales.js +6 -0
  78. package/src/types/vehicle-sales.js.map +1 -0
  79. package/src/types/vehicles.js +98 -0
  80. package/src/types/vehicles.js.map +1 -0
  81. package/src/utils/leasing.js +6 -0
  82. package/src/utils/leasing.js.map +1 -0
  83. package/src/utils/opportunities.js +48 -0
  84. package/src/utils/opportunities.js.map +1 -0
  85. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,107 @@
1
+ export var OpportunityActions;
2
+ (function (OpportunityActions) {
3
+ OpportunityActions["ADD_REMARKS"] = "add_remarks";
4
+ OpportunityActions["CREATE_QUOTE"] = "create_quote";
5
+ OpportunityActions["LOSE"] = "lose";
6
+ OpportunityActions["REOPEN"] = "reopen";
7
+ OpportunityActions["START_PREPARATION"] = "start_preparation";
8
+ OpportunityActions["REVERT_PREPARATION"] = "revert_preparation";
9
+ OpportunityActions["START_DELIVERY"] = "start_delivery";
10
+ OpportunityActions["REVERT_DELIVERY"] = "revert_delivery";
11
+ OpportunityActions["SET_CUSTOMER"] = "set_customer";
12
+ OpportunityActions["SET_DOCUMENTS"] = "set_documents";
13
+ OpportunityActions["SET_INTEREST"] = "set_interest";
14
+ OpportunityActions["SET_METADATA"] = "set_metadata";
15
+ OpportunityActions["SET_VEHICLE"] = "set_vehicle";
16
+ OpportunityActions["ADD_ACTIVITY"] = "add_activity";
17
+ OpportunityActions["ADD_PAYMENT"] = "add_payment";
18
+ OpportunityActions["SWITCH_VEHICLE"] = "switch_vehicle";
19
+ OpportunityActions["DELIVER_VEHICLE"] = "deliver_vehicle";
20
+ OpportunityActions["UNDO_DELIVER_VEHICLE"] = "undo_deliver_vehicle";
21
+ OpportunityActions["SET_DEAL_INFO"] = "update_deal_info";
22
+ OpportunityActions["ISSUE_INVOICE"] = "issue_invoice";
23
+ })(OpportunityActions || (OpportunityActions = {}));
24
+ export var OpportunityPaymentStatus;
25
+ (function (OpportunityPaymentStatus) {
26
+ OpportunityPaymentStatus["PARTIAL_PAYMENT"] = "partial_payment";
27
+ OpportunityPaymentStatus["FULL_PAYMENT"] = "full_payment";
28
+ OpportunityPaymentStatus["NO_PAYMENT"] = "no_payment";
29
+ })(OpportunityPaymentStatus || (OpportunityPaymentStatus = {}));
30
+ export var OpportunityStatus;
31
+ (function (OpportunityStatus) {
32
+ OpportunityStatus["PROSPECTION"] = "prospection";
33
+ OpportunityStatus["DISCOVERY"] = "discovery";
34
+ OpportunityStatus["EVALUATION"] = "evaluation";
35
+ OpportunityStatus["REVIEW"] = "review";
36
+ OpportunityStatus["PREPARATION"] = "preparation";
37
+ OpportunityStatus["DELIVERY"] = "delivery";
38
+ })(OpportunityStatus || (OpportunityStatus = {}));
39
+ export const OpportunityStatusOrder = [
40
+ OpportunityStatus.PROSPECTION,
41
+ OpportunityStatus.DISCOVERY,
42
+ OpportunityStatus.EVALUATION,
43
+ OpportunityStatus.REVIEW,
44
+ OpportunityStatus.PREPARATION,
45
+ OpportunityStatus.DELIVERY,
46
+ ];
47
+ export var OpportunityRequirementsCode;
48
+ (function (OpportunityRequirementsCode) {
49
+ OpportunityRequirementsCode["VEHICLE_AT_ORIGIN"] = "vehicle_at_origin";
50
+ OpportunityRequirementsCode["LEASING_SL_ACTION"] = "sl_action";
51
+ OpportunityRequirementsCode["TECHNICAL_NOTES_CHANGED"] = "technical_notes_changed";
52
+ })(OpportunityRequirementsCode || (OpportunityRequirementsCode = {}));
53
+ export var OpportunityWarningsCode;
54
+ (function (OpportunityWarningsCode) {
55
+ OpportunityWarningsCode["QUOTE_PENDING_VALIDATION"] = "quote_pending_validation";
56
+ OpportunityWarningsCode["QUOTE_PEDING_MANAGER_APPROVAL"] = "quote_pending_manager_approval";
57
+ OpportunityWarningsCode["CONCURRENT_OPPORTUNITIES"] = "concurrent_opportunities";
58
+ OpportunityWarningsCode["VEHICLE_RESERVED"] = "vehicle_reserved";
59
+ OpportunityWarningsCode["OPPORTUNITY_NEEDS_SWITCH_VEHICLE"] = "opportunity_needs_switch_vehicle";
60
+ OpportunityWarningsCode["VEHICLE_RESERVED_DATE_INFO"] = "vehicle_reserved_date_info";
61
+ OpportunityWarningsCode["VEHICLE_RESERVED_INDEFINITELY"] = "vehicle_reserved_indefinitely";
62
+ OpportunityWarningsCode["QUOTE_MISSING_DELIVERY_DETAILS"] = "quote_missing_delivery_details";
63
+ OpportunityWarningsCode["VEHICLE_TECHNICAL_DETAILS_CHANGED"] = "vehicle_technical_details_changed";
64
+ OpportunityWarningsCode["QUOTE_MISSING_FINANCING_DETAILS"] = "quote_missing_financing_details";
65
+ })(OpportunityWarningsCode || (OpportunityWarningsCode = {}));
66
+ export const OpportunityWonColumnId = 'closed_won';
67
+ export const OpportunityKanbanColumns = [...OpportunityStatusOrder, OpportunityWonColumnId];
68
+ export const OpportunityKanbanEndColumns = [OpportunityWonColumnId];
69
+ export var OpportunityLostReasonValues;
70
+ (function (OpportunityLostReasonValues) {
71
+ OpportunityLostReasonValues["Expensive"] = "expensive";
72
+ OpportunityLostReasonValues["AlreadySold"] = "already_sold";
73
+ OpportunityLostReasonValues["BadExperience"] = "bad_experience";
74
+ OpportunityLostReasonValues["IncorrectVehicleCondition"] = "incorrect_vehicle_condition";
75
+ OpportunityLostReasonValues["NoStock"] = "not_enough_stock";
76
+ OpportunityLostReasonValues["SlowDelivery"] = "slow_delivery";
77
+ OpportunityLostReasonValues["HighDeposit"] = "deposit_too_high";
78
+ OpportunityLostReasonValues["NoAnswer"] = "client_not_answered";
79
+ OpportunityLostReasonValues["Automatic"] = "automatic";
80
+ OpportunityLostReasonValues["LeasingDeal"] = "sold-via-leasing";
81
+ })(OpportunityLostReasonValues || (OpportunityLostReasonValues = {}));
82
+ export var VehicleSaleDealStatus;
83
+ (function (VehicleSaleDealStatus) {
84
+ VehicleSaleDealStatus["SaleAgreed"] = "SALE_AGREED";
85
+ VehicleSaleDealStatus["FirstPaymentReceived"] = "FIRST_PAYMENT_RECEIVED";
86
+ VehicleSaleDealStatus["FullPaymentReceived"] = "FULL_PAYMENT_RECEIVED";
87
+ })(VehicleSaleDealStatus || (VehicleSaleDealStatus = {}));
88
+ export var VehicleSaleLogisticsStatus;
89
+ (function (VehicleSaleLogisticsStatus) {
90
+ VehicleSaleLogisticsStatus["AtOrigin"] = "AT_ORIGIN";
91
+ VehicleSaleLogisticsStatus["Delivered"] = "DELIVERED";
92
+ })(VehicleSaleLogisticsStatus || (VehicleSaleLogisticsStatus = {}));
93
+ export const QUOTE_NEEDS_VALIDATION_NOTIFICATION_ORIGIN = 'quote-validation';
94
+ export const QUOTE_NOT_CREATED_BY_ACCOUNT_MANAGER = 'quote-not-created-by-account-manager';
95
+ export const QUOTE_VALIDATOR_FEEDBACK_NOTIFICATION_ORIGIN = 'quote-validation-feedback';
96
+ export const OPPORTUNITY_VEHICLE_AVAILABLE_NOTIFICATION_ORIGIN = 'opportunity-vehicle-available';
97
+ export const OPPORTUNITY_VEHICLE_DELIVERY_NOTIFICATION_ORIGIN = 'opportunity-vehicle-delivery';
98
+ export const OPPORTUNITY_VEHICLE_RESERVATION_ABOUT_TO_EXPIRE_NOTIFICATION_ORIGIN = 'opportunity-vehicle-reservation-to-expire';
99
+ export const OPPORTUNITY_VEHICLE_RESERVATION_EXPIRED_NOTIFICATION_ORIGIN = 'opportunity-vehicle-reservation-expired';
100
+ export const OFFER_SET_FINAL_VALUATION_ORIGIN = 'offer-set-final-valuation';
101
+ export const VEHICLE_PRICE_DECREASES_NOTIFICATION_ORIGIN = 'vehicle-price-decreased';
102
+ export const VEHICLE_ARRIVED_NOTIFICATION_ORIGIN = 'vehicle-arrived';
103
+ export const VEHICLE_CHECKEDIN_NOTIFICATION_ORIGIN = 'vehicle-checkedin';
104
+ export const VEHICLE_PURCHASED_NOTIFICATION_ORIGIN = 'vehicle-purchased';
105
+ export const VEHICLE_PRICE_CHANGED_NOTIFICATION_ORIGIN = 'vehicle-price-changed';
106
+ export const VEHICLE_SOLD_NOTIFICATION_ORIGIN = 'vehicle-sold';
107
+ //# sourceMappingURL=opportunities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunities.js","sourceRoot":"","sources":["opportunities.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,iDAA2B,CAAA;IAC3B,mDAA6B,CAAA;IAC7B,mCAAa,CAAA;IACb,uCAAiB,CAAA;IACjB,6DAAuC,CAAA;IACvC,+DAAyC,CAAA;IACzC,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,mDAA6B,CAAA;IAC7B,qDAA+B,CAAA;IAC/B,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,iDAA2B,CAAA;IAC3B,mDAA6B,CAAA;IAC7B,iDAA2B,CAAA;IAC3B,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,wDAAkC,CAAA;IAClC,qDAA+B,CAAA;AACjC,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B;AAED,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,+DAAmC,CAAA;IACnC,yDAA6B,CAAA;IAC7B,qDAAyB,CAAA;AAC3B,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;IACzB,sCAAiB,CAAA;IACjB,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;AACvB,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,iBAAiB,CAAC,WAAW;IAC7B,iBAAiB,CAAC,SAAS;IAC3B,iBAAiB,CAAC,UAAU;IAC5B,iBAAiB,CAAC,MAAM;IACxB,iBAAiB,CAAC,WAAW;IAC7B,iBAAiB,CAAC,QAAQ;CAC3B,CAAC;AAEF,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,sEAAuC,CAAA;IACvC,8DAA+B,CAAA;IAC/B,kFAAmD,CAAA;AACrD,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAED,MAAM,CAAN,IAAY,uBAWX;AAXD,WAAY,uBAAuB;IACjC,gFAAqD,CAAA;IACrD,2FAAgE,CAAA;IAChE,gFAAqD,CAAA;IACrD,gEAAqC,CAAA;IACrC,gGAAqE,CAAA;IACrE,oFAAyD,CAAA;IACzD,0FAA+D,CAAA;IAC/D,4FAAiE,CAAA;IACjE,kGAAuE,CAAA;IACvE,8FAAmE,CAAA;AACrE,CAAC,EAXW,uBAAuB,KAAvB,uBAAuB,QAWlC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,2BAA2B,GAAa,CAAC,sBAAsB,CAAC,CAAC;AAE9E,MAAM,CAAN,IAAY,2BAWX;AAXD,WAAY,2BAA2B;IACrC,sDAAuB,CAAA;IACvB,2DAA4B,CAAA;IAC5B,+DAAgC,CAAA;IAChC,wFAAyD,CAAA;IACzD,2DAA4B,CAAA;IAC5B,6DAA8B,CAAA;IAC9B,+DAAgC,CAAA;IAChC,+DAAgC,CAAA;IAChC,sDAAuB,CAAA;IACvB,+DAAgC,CAAA;AAClC,CAAC,EAXW,2BAA2B,KAA3B,2BAA2B,QAWtC;AAsCD,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,mDAA0B,CAAA;IAC1B,wEAA+C,CAAA;IAC/C,sEAA6C,CAAA;AAC/C,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,oDAAsB,CAAA;IACtB,qDAAuB,CAAA;AACzB,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAwKD,MAAM,CAAC,MAAM,0CAA0C,GAAG,kBAAkB,CAAC;AAC7E,MAAM,CAAC,MAAM,oCAAoC,GAAG,sCAAsC,CAAC;AAC3F,MAAM,CAAC,MAAM,4CAA4C,GAAG,2BAA2B,CAAC;AAExF,MAAM,CAAC,MAAM,iDAAiD,GAAG,+BAA+B,CAAC;AACjG,MAAM,CAAC,MAAM,gDAAgD,GAAG,8BAA8B,CAAC;AAC/F,MAAM,CAAC,MAAM,mEAAmE,GAC9E,2CAA2C,CAAC;AAC9C,MAAM,CAAC,MAAM,2DAA2D,GACtE,yCAAyC,CAAC;AAE5C,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAE5E,MAAM,CAAC,MAAM,2CAA2C,GAAG,yBAAyB,CAAC;AACrF,MAAM,CAAC,MAAM,mCAAmC,GAAG,iBAAiB,CAAC;AACrE,MAAM,CAAC,MAAM,qCAAqC,GAAG,mBAAmB,CAAC;AACzE,MAAM,CAAC,MAAM,qCAAqC,GAAG,mBAAmB,CAAC;AACzE,MAAM,CAAC,MAAM,yCAAyC,GAAG,uBAAuB,CAAC;AACjF,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ export var PaymentActions;
2
+ (function (PaymentActions) {
3
+ PaymentActions["DELETE"] = "delete";
4
+ PaymentActions["EDIT"] = "edit";
5
+ })(PaymentActions || (PaymentActions = {}));
6
+ export const PAYMENT_NOTIFICATION_ORIGIN = 'payment-notification';
7
+ //# sourceMappingURL=payments.js.map
@@ -0,0 +1,2 @@
1
+ export * from '@bisondesk/commons-sdk/picklists';
2
+ //# sourceMappingURL=picklists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picklists.js","sourceRoot":"","sources":["picklists.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,42 @@
1
+ export var QuoteActions;
2
+ (function (QuoteActions) {
3
+ QuoteActions["ACCEPT"] = "accept";
4
+ QuoteActions["VALIDATE"] = "validate";
5
+ QuoteActions["DONWLOAD_PDFS"] = "download-pdfs";
6
+ QuoteActions["CANCEL"] = "cancel";
7
+ })(QuoteActions || (QuoteActions = {}));
8
+ export var QuoteStatus;
9
+ (function (QuoteStatus) {
10
+ QuoteStatus["CREATED"] = "created";
11
+ QuoteStatus["VALIDATED"] = "validated";
12
+ QuoteStatus["INVALIDATED"] = "invalidated";
13
+ QuoteStatus["ACCEPTED"] = "accepted";
14
+ QuoteStatus["REJECTED"] = "rejected";
15
+ QuoteStatus["CANCELLED"] = "cancelled";
16
+ QuoteStatus["MANAGER_REJECTED"] = "managerRejected";
17
+ QuoteStatus["MANAGER_ACCEPTED"] = "managerAccepted";
18
+ })(QuoteStatus || (QuoteStatus = {}));
19
+ export var QuoteMetricsScore;
20
+ (function (QuoteMetricsScore) {
21
+ QuoteMetricsScore["DANGER"] = "danger";
22
+ QuoteMetricsScore["NEUTRAL"] = "neutral";
23
+ QuoteMetricsScore["GOOD"] = "good";
24
+ })(QuoteMetricsScore || (QuoteMetricsScore = {}));
25
+ export var DeliveryTypes;
26
+ (function (DeliveryTypes) {
27
+ DeliveryTypes["PICK_UP"] = "pickUp";
28
+ DeliveryTypes["ADDRESS"] = "address";
29
+ DeliveryTypes["PORT"] = "port";
30
+ })(DeliveryTypes || (DeliveryTypes = {}));
31
+ export var SpoilerInfo;
32
+ (function (SpoilerInfo) {
33
+ SpoilerInfo["MOUNT"] = "mount";
34
+ SpoilerInfo["UNMOUNT"] = "unmount";
35
+ SpoilerInfo["NO_ACTION"] = "noAction";
36
+ })(SpoilerInfo || (SpoilerInfo = {}));
37
+ export var TransportationMode;
38
+ (function (TransportationMode) {
39
+ TransportationMode["BY_ROAD"] = "byRoad";
40
+ TransportationMode["ON_LOW_BED"] = "onLowBed";
41
+ })(TransportationMode || (TransportationMode = {}));
42
+ //# sourceMappingURL=quotes.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=recently-viewed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recently-viewed.js","sourceRoot":"","sources":["recently-viewed.ts"],"names":[],"mappings":""}
@@ -95,7 +95,7 @@ export type LeasingCumulativeBucket = {
95
95
  export type LeasingOverdueBucket = {
96
96
  /** `YYYY-MM` month. */
97
97
  month: string;
98
- /** Overdue rent amount (excl VAT) as of the end of that month. */
98
+ /** Overdue rent amount (excl VAT) as of that month's snapshot (see `overdueHistoryDay`). */
99
99
  amount: number;
100
100
  };
101
101
 
@@ -169,17 +169,30 @@ export type LeasingReportResponse = {
169
169
  // Client risk, as of the snapshot month. `riskLevel` is zero-inflated (most clients
170
170
  // are 0), so this is the at-risk tail shape, not a central statistic.
171
171
  risk: {
172
- /** Active-contract clients with non-zero risk, with YoY. */
172
+ /**
173
+ * Active-contract clients at risk level ≥ 2, with YoY. Level 1 (one overdue invoice
174
+ * per overdue contract) is the ordinary pays-next-month case and isn't counted, so
175
+ * this can be lower than the sum of `bands` (which still includes level 1).
176
+ * For in-progress periods (mtd/ytd) `prev`/`pct` are null: the risk history stores
177
+ * month-end states only, so a mid-month reading has no day-aligned year-ago base.
178
+ */
173
179
  clientsAtRisk: YoyMetric;
174
180
  /** Total active-contract clients (the at-risk denominator). */
175
181
  activeClients: number;
176
- /** Severity-band counts of at-risk clients (`riskLevel` floored: levels 1/2/3/4+). */
182
+ /** Severity-band counts of all overdue clients (`riskLevel` floored: levels 1/2/3/4+). */
177
183
  bands: { band: string; count: number }[];
178
184
  };
179
185
  /** Fixed 12-month cumulative new contracts, this calendar year vs last. */
180
186
  cumulativeContracts: LeasingCumulativeBucket[];
181
- /** Fixed trailing-6-month overdue rent amount (excl VAT), as of each month-end. */
187
+ /** Fixed trailing-6-month overdue rent amount (excl VAT), one snapshot per month. */
182
188
  overdueHistory: LeasingOverdueBucket[];
189
+ /**
190
+ * Day-of-month the overdue-history snapshots are taken on — today's day, so every past
191
+ * month is measured at the same point in its month as the in-progress one. Null when
192
+ * today is past the 28th (a day not every month has) and the snapshots are month-ends
193
+ * instead, with the current month at now.
194
+ */
195
+ overdueHistoryDay: number | null;
183
196
  /** Net invoiced rent (excl VAT) by issue month, from a fixed start (Jan 2025) to now. */
184
197
  invoicedHistory: LeasingInvoicedBucket[];
185
198
  /** Track-and-trace fleet usage over the window. */
@@ -81,6 +81,18 @@ export type SalesReportMake = {
81
81
  yoyPct: number | null;
82
82
  };
83
83
 
84
+ /** A ranked organization row for the top-clients / top-suppliers cards. */
85
+ export type SalesReportTopOrg = {
86
+ /** Organization id (`org.id` for clients; `purchase.organizationId` for suppliers). */
87
+ id: string;
88
+ /** Organization name (resolved server-side); falls back to the id when missing. */
89
+ name: string;
90
+ /** The org's ISO country code (lowercase); null when not recorded. */
91
+ countryCode: string | null;
92
+ units: number;
93
+ yoyPct: number | null;
94
+ };
95
+
84
96
  /** A conglomerate-flagged organization (there is no group/parent model — each org stands alone). */
85
97
  export type SalesReportConglomerateOrg = {
86
98
  /** `org.id`. */
@@ -157,6 +169,10 @@ export type SalesReportResponse = {
157
169
  salespeople: SalesReportSalesperson[];
158
170
  /** All purchasers with vehicles bought in the current window (capped; the client list scrolls). */
159
171
  buyers: SalesReportBuyer[];
172
+ /** Top client organizations by units bought from us in the current window. */
173
+ topClients: SalesReportTopOrg[];
174
+ /** Top supplier organizations by used vehicles purchased from them in the current window. */
175
+ topSuppliers: SalesReportTopOrg[];
160
176
  /** Returning-customer tenure shares (4 buckets). */
161
177
  returning: TenureBucket[];
162
178
  conglomerate: SalesReportConglomerate;
@@ -0,0 +1,5 @@
1
+ export var ReservationActions;
2
+ (function (ReservationActions) {
3
+ ReservationActions["SET_RESERVATION_EXPIRE"] = "update_expires_at";
4
+ })(ReservationActions || (ReservationActions = {}));
5
+ //# sourceMappingURL=reservations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservations.js","sourceRoot":"","sources":["reservations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC5B,kEAA4C,CAAA;AAC9C,CAAC,EAFW,kBAAkB,KAAlB,kBAAkB,QAE7B"}
@@ -0,0 +1,5 @@
1
+ export var DisplayType;
2
+ (function (DisplayType) {
3
+ DisplayType["StarsRating"] = "stars-rating";
4
+ })(DisplayType || (DisplayType = {}));
5
+ //# sourceMappingURL=roi-ratings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roi-ratings.js","sourceRoot":"","sources":["roi-ratings.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,2CAA4B,CAAA;AAC9B,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB"}
@@ -0,0 +1,9 @@
1
+ export var SavedFiltersActions;
2
+ (function (SavedFiltersActions) {
3
+ SavedFiltersActions["Share"] = "share";
4
+ SavedFiltersActions["Update"] = "update";
5
+ SavedFiltersActions["Delete"] = "delete";
6
+ SavedFiltersActions["SetPersonalDefault"] = "set_own_default";
7
+ SavedFiltersActions["SetGlobalDefault"] = "set_global_default";
8
+ })(SavedFiltersActions || (SavedFiltersActions = {}));
9
+ //# sourceMappingURL=saved-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-filters.js","sourceRoot":"","sources":["saved-filters.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,6DAAsC,CAAA;IACtC,8DAAuC,CAAA;AACzC,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,QAM9B"}
@@ -0,0 +1,2 @@
1
+ export * from '@bisondesk/commons-sdk/search';
2
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["search.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["settings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["templates.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export var TenantModule;
2
+ (function (TenantModule) {
3
+ TenantModule["Administration"] = "administration";
4
+ TenantModule["App"] = "app";
5
+ TenantModule["CRM"] = "crm";
6
+ TenantModule["Docs"] = "docs";
7
+ TenantModule["Leads"] = "leads";
8
+ TenantModule["Leasing"] = "leasing";
9
+ TenantModule["Marketing"] = "marketing";
10
+ TenantModule["Insights"] = "insights";
11
+ TenantModule["Opportunities"] = "opportunities";
12
+ TenantModule["Offers"] = "offers";
13
+ TenantModule["VehiclesMasterData"] = "vehicles_master_data";
14
+ TenantModule["Vehicles"] = "vehicles";
15
+ TenantModule["Tasks"] = "tasks";
16
+ TenantModule["TrackAndTrace"] = "track_and_trace";
17
+ TenantModule["Bootstrap"] = "bootstrap";
18
+ TenantModule["WhatsappNotifications"] = "whatsapp_notifications";
19
+ TenantModule["Hexon"] = "hexon";
20
+ })(TenantModule || (TenantModule = {}));
21
+ //# sourceMappingURL=tenants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenants.js","sourceRoot":"","sources":["tenants.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAN,IAAY,YAkBX;AAlBD,WAAY,YAAY;IACtB,iDAAiC,CAAA;IACjC,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IACrB,+CAA+B,CAAA;IAC/B,iCAAiB,CAAA;IACjB,2DAA2C,CAAA;IAC3C,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,uCAAuB,CAAA;IACvB,gEAAgD,CAAA;IAChD,+BAAe,CAAA;AACjB,CAAC,EAlBW,YAAY,KAAZ,YAAY,QAkBvB"}
@@ -37,6 +37,11 @@ export enum TenantModule {
37
37
  Prospects = 'prospects',
38
38
  }
39
39
 
40
+ /** Report tabs a tenant can enable, in canonical order. */
41
+ export const REPORT_TAB_KEYS = ['sales', 'leasing', 'purchases'] as const;
42
+
43
+ export type ReportTabKey = (typeof REPORT_TAB_KEYS)[number];
44
+
40
45
  export type Tenant = PublicTenant & {
41
46
  cognito?: CognitoInfo;
42
47
  languages: [string, ...string[]];
@@ -50,6 +55,14 @@ export type Tenant = PublicTenant & {
50
55
 
51
56
  branches: [Branch, ...Branch[]];
52
57
  modules: TenantModule[];
58
+ /**
59
+ * Reports page configuration. `tabs` lists the visible tabs in display order;
60
+ * absent or empty means no reports are configured for the tenant (the page
61
+ * shows a notice instead of tabs).
62
+ */
63
+ reports?: {
64
+ tabs: ReportTabKey[];
65
+ };
53
66
  test?: boolean;
54
67
  opportunities: {
55
68
  types: OpportunityType[];
@@ -0,0 +1,7 @@
1
+ export var CommissionGrade;
2
+ (function (CommissionGrade) {
3
+ CommissionGrade["TooLow"] = "tooLow";
4
+ CommissionGrade["Low"] = "low";
5
+ CommissionGrade["OnTarget"] = "onTarget";
6
+ })(CommissionGrade || (CommissionGrade = {}));
7
+ //# sourceMappingURL=user-performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-performance.js","sourceRoot":"","sources":["user-performance.ts"],"names":[],"mappings":"AAsCA,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,wCAAqB,CAAA;AACvB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
@@ -0,0 +1,2 @@
1
+ export * from '@bisondesk/commons-sdk/utils';
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["validation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export var VehicleSaleInfoActions;
2
+ (function (VehicleSaleInfoActions) {
3
+ VehicleSaleInfoActions["VIEW_COSTS"] = "canSeeCosts";
4
+ VehicleSaleInfoActions["VIEW_CUSTOMER"] = "canSeeCustomer";
5
+ })(VehicleSaleInfoActions || (VehicleSaleInfoActions = {}));
6
+ //# sourceMappingURL=vehicle-sales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle-sales.js","sourceRoot":"","sources":["vehicle-sales.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,oDAA0B,CAAA;IAC1B,0DAAgC,CAAA;AAClC,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC"}
@@ -0,0 +1,98 @@
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["AddPayment"] = "add_payment";
94
+ PurchaseActions["EditPayment"] = "edit_payment";
95
+ PurchaseActions["MarkPaymentDone"] = "mark_payment_done";
96
+ PurchaseActions["AddRemarks"] = "add_remarks";
97
+ })(PurchaseActions || (PurchaseActions = {}));
98
+ //# sourceMappingURL=vehicles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicles.js","sourceRoot":"","sources":["vehicles.ts"],"names":[],"mappings":"AAgBA,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;AAiLD,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,mDAAoB,CAAA;IACpB,oDAAqB,CAAA;IACrB,4CAAa,CAAA;AACf,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAwWD,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,eAYX;AAZD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,0EAAuD,CAAA;IACvD,+CAA4B,CAAA;IAC5B,0DAAuC,CAAA;IACvC,4DAAyC,CAAA;IACzC,8DAA2C,CAAA;IAC3C,kEAA+C,CAAA;IAC/C,6CAA0B,CAAA;IAC1B,+CAA4B,CAAA;IAC5B,wDAAqC,CAAA;IACrC,6CAA0B,CAAA;AAC5B,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B"}
@@ -0,0 +1,6 @@
1
+ import { UTCDate } from '@date-fns/utc';
2
+ import { format } from 'date-fns';
3
+ import { last, map, sortBy, uniqBy } from 'lodash-es';
4
+ export const sortContractClients = (clients) => sortBy(map(uniqBy(clients, (c) => c.takeoverId), (c) => ({ ...c, since: format(new UTCDate(c.since), 'yyyy-MM-dd') })), (cli) => cli.since, (cli) => (cli.takeoverId ? parseInt(cli.takeoverId.replace(/[^0-9]/g, '')) : 0));
5
+ export const getDealRef = ({ conditions, opportunities, }) => last(conditions) ?? last(opportunities);
6
+ //# sourceMappingURL=leasing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing.js","sourceRoot":"","sources":["leasing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAStD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgC,EAA2B,EAAE,CAC/F,MAAM,CACJ,GAAG,CACD,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CACrE,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAClB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,UAAU,EACV,aAAa,GACyC,EAAkC,EAAE,CAC1F,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAE,CAAC"}
@@ -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"}