@bisondesk/core-sdk 1.0.600 → 1.0.602

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 (80) hide show
  1. package/lib/types/activities.d.ts +7 -0
  2. package/lib/types/activities.d.ts.map +1 -1
  3. package/lib/types/activities.js.map +1 -1
  4. package/lib/types/analysis-purchases.d.ts +12 -0
  5. package/lib/types/analysis-purchases.d.ts.map +1 -1
  6. package/lib/types/analysis-purchases.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/types/activities.js +13 -0
  9. package/src/types/activities.js.map +1 -0
  10. package/src/types/activities.ts +9 -0
  11. package/src/types/analysis-purchases.ts +53 -0
  12. package/src/types/comparables.js +2 -0
  13. package/src/types/comparables.js.map +1 -0
  14. package/src/types/crm.js +58 -0
  15. package/src/types/crm.js.map +1 -0
  16. package/src/types/dashboard.js +2 -0
  17. package/src/types/dashboard.js.map +1 -0
  18. package/src/types/definitions.js +2 -0
  19. package/src/types/definitions.js.map +1 -0
  20. package/src/types/fields.js +2 -0
  21. package/src/types/fields.js.map +1 -0
  22. package/src/types/insights.js +2 -0
  23. package/src/types/insights.js.map +1 -0
  24. package/src/types/interests.js +6 -0
  25. package/src/types/interests.js.map +1 -0
  26. package/src/types/internal-events.js +18 -0
  27. package/src/types/internal-events.js.map +1 -0
  28. package/src/types/internet-opportunities.js +2 -0
  29. package/src/types/internet-opportunities.js.map +1 -0
  30. package/src/types/internet-vehicles.js +2 -0
  31. package/src/types/internet-vehicles.js.map +1 -0
  32. package/src/types/leasing-administration.js +2 -0
  33. package/src/types/leasing-administration.js.map +1 -0
  34. package/src/types/leasing-debtors.js +2 -0
  35. package/src/types/leasing-debtors.js.map +1 -0
  36. package/src/types/leasing-search.js +2 -0
  37. package/src/types/leasing-search.js.map +1 -0
  38. package/src/types/leasing-settings.js +7 -0
  39. package/src/types/leasing-settings.js.map +1 -0
  40. package/src/types/leasing.js +38 -0
  41. package/src/types/leasing.js.map +1 -0
  42. package/src/types/marketing.js +35 -0
  43. package/src/types/marketing.js.map +1 -0
  44. package/src/types/offers.js +56 -0
  45. package/src/types/opportunities.js +107 -0
  46. package/src/types/opportunities.js.map +1 -0
  47. package/src/types/payments.js +7 -0
  48. package/src/types/picklists.js +2 -0
  49. package/src/types/picklists.js.map +1 -0
  50. package/src/types/quotes.js +42 -0
  51. package/src/types/recently-viewed.js +2 -0
  52. package/src/types/recently-viewed.js.map +1 -0
  53. package/src/types/reservations.js +5 -0
  54. package/src/types/reservations.js.map +1 -0
  55. package/src/types/roi-ratings.js +5 -0
  56. package/src/types/roi-ratings.js.map +1 -0
  57. package/src/types/saved-filters.js +9 -0
  58. package/src/types/saved-filters.js.map +1 -0
  59. package/src/types/search.js +2 -0
  60. package/src/types/search.js.map +1 -0
  61. package/src/types/settings.js +2 -0
  62. package/src/types/settings.js.map +1 -0
  63. package/src/types/templates.js +2 -0
  64. package/src/types/templates.js.map +1 -0
  65. package/src/types/tenants.js +21 -0
  66. package/src/types/tenants.js.map +1 -0
  67. package/src/types/user-performance.js +7 -0
  68. package/src/types/user-performance.js.map +1 -0
  69. package/src/types/utils.js +2 -0
  70. package/src/types/validation.js +2 -0
  71. package/src/types/validation.js.map +1 -0
  72. package/src/types/vehicle-sales.js +6 -0
  73. package/src/types/vehicle-sales.js.map +1 -0
  74. package/src/types/vehicles.js +98 -0
  75. package/src/types/vehicles.js.map +1 -0
  76. package/src/utils/leasing.js +6 -0
  77. package/src/utils/leasing.js.map +1 -0
  78. package/src/utils/opportunities.js +48 -0
  79. package/src/utils/opportunities.js.map +1 -0
  80. package/tsconfig.tsbuildinfo +1 -1
@@ -11,6 +11,11 @@ export declare enum ActivityActions {
11
11
  DELETE = "delete",
12
12
  EDIT = "edit"
13
13
  }
14
+ export type ActivityContact = {
15
+ id?: string;
16
+ phoneNumber?: string;
17
+ email?: string;
18
+ };
14
19
  export interface BaseActivity<Meta = ActivityV2Meta> {
15
20
  type: ActivityType;
16
21
  businessEntityId: BusinessEntityIds;
@@ -18,6 +23,7 @@ export interface BaseActivity<Meta = ActivityV2Meta> {
18
23
  description?: string;
19
24
  readonly?: boolean;
20
25
  meta?: Meta;
26
+ contacts?: ActivityContact[];
21
27
  }
22
28
  export type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {
23
29
  id?: undefined;
@@ -39,6 +45,7 @@ export type ActivityUpdate = {
39
45
  description?: string;
40
46
  type?: ActivityType;
41
47
  activityAt?: string;
48
+ contacts?: ActivityContact[];
42
49
  };
43
50
  export type ActivityEvent = BaseEvent & (ActivityCreateEvent | ActivityUpdateEvent | ActivityDeleteEvent);
44
51
  type BaseActivityEvent = {
@@ -1 +1 @@
1
- {"version":3,"file":"activities.d.ts","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activities.d.ts","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"activities.js","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,2BAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds } from '../constants.js';\nimport { BaseEvent } from './internal-events.js';\n\nexport enum ActivityType {\n CALL = 'call',\n MEETING = 'meeting',\n EMAIL = 'email',\n CHAT = 'chat',\n SMS = 'sms',\n}\n\nexport enum ActivityActions {\n DELETE = 'delete',\n EDIT = 'edit',\n}\n\nexport interface BaseActivity<Meta = ActivityV2Meta> {\n type: ActivityType;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n description?: string;\n readonly?: boolean;\n meta?: Meta;\n}\n\nexport type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n activityAt?: string;\n};\n\nexport type Activity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id: string;\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n activityAt: string;\n};\n\nexport type ActivityUpdate = {\n description?: string;\n type?: ActivityType;\n activityAt?: string;\n};\n\nexport type ActivityEvent = BaseEvent &\n (ActivityCreateEvent | ActivityUpdateEvent | ActivityDeleteEvent);\n\ntype BaseActivityEvent = {\n actionAt: string;\n userId: string;\n tenantId: string;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\nexport type ActivityCreateEvent = BaseActivityEvent & {\n action: 'create';\n data: Activity;\n previousData?: undefined;\n};\n\nexport type ActivityUpdateEvent = BaseActivityEvent & {\n action: 'update';\n data: Activity;\n previousData: Activity;\n};\n\nexport type ActivityDeleteEvent = BaseActivityEvent & {\n action: 'delete';\n data: undefined;\n previousData: Activity;\n};\n\n/************\n * ActivityV2Meta Types\n * These types are used to define the structure of the metadata for different activity types.\n ************/\n\nexport type ActivityV2Meta =\n | EmailDebtorsDossierActivityPayload\n | CallDebtorsDossierActivityPayload\n | MeetingDebtorsDossierActivityPayload\n | ChatDebtorsDossierActivityPayload;\n\nexport type EmailDebtorsDossierActivityPayload = {\n /* from: { email: string; name?: string; external?: boolean };\n to: { email: string; name?: string }[];\n cc?: { email: string; name?: string }[];\n bcc?: { email: string; name?: string }[];\n subject?: string;\n attachments?: AttachmentValue[]; */\n};\n\nexport type CallDebtorsDossierActivityPayload = {\n didNotAnswer: boolean;\n /* from: { phone: string; name?: string; external?: boolean };\n to: string;\n duration?: number;\n recordingUrl?: string;\n transcription?: string; */\n};\n\nexport type MeetingDebtorsDossierActivityPayload = {\n /* organizer: string;\n participants: string[];\n location?: string;\n startTime: string;\n endTime: string; */\n};\n\nexport type ChatDebtorsDossierActivityPayload = {\n /* from: { phone: string; name?: string; external?: boolean };\n to: string[]; */\n message: string;\n platform: 'whatsapp' | 'sms';\n};\n"]}
1
+ {"version":3,"file":"activities.js","sourceRoot":"/","sources":["types/activities.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,2BAAW,CAAA;AACb,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["import { BusinessEntityIds } from '../constants.js';\nimport { BaseEvent } from './internal-events.js';\n\nexport enum ActivityType {\n CALL = 'call',\n MEETING = 'meeting',\n EMAIL = 'email',\n CHAT = 'chat',\n SMS = 'sms',\n}\n\nexport enum ActivityActions {\n DELETE = 'delete',\n EDIT = 'edit',\n}\n\nexport type ActivityContact = {\n id?: string;\n phoneNumber?: string;\n email?: string;\n};\n\nexport interface BaseActivity<Meta = ActivityV2Meta> {\n type: ActivityType;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n description?: string;\n readonly?: boolean;\n meta?: Meta;\n // The people called/emailed/etc in this activity.\n contacts?: ActivityContact[];\n}\n\nexport type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n activityAt?: string;\n};\n\nexport type Activity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {\n id: string;\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n activityAt: string;\n};\n\nexport type ActivityUpdate = {\n description?: string;\n type?: ActivityType;\n activityAt?: string;\n contacts?: ActivityContact[];\n};\n\nexport type ActivityEvent = BaseEvent &\n (ActivityCreateEvent | ActivityUpdateEvent | ActivityDeleteEvent);\n\ntype BaseActivityEvent = {\n actionAt: string;\n userId: string;\n tenantId: string;\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\nexport type ActivityCreateEvent = BaseActivityEvent & {\n action: 'create';\n data: Activity;\n previousData?: undefined;\n};\n\nexport type ActivityUpdateEvent = BaseActivityEvent & {\n action: 'update';\n data: Activity;\n previousData: Activity;\n};\n\nexport type ActivityDeleteEvent = BaseActivityEvent & {\n action: 'delete';\n data: undefined;\n previousData: Activity;\n};\n\n/************\n * ActivityV2Meta Types\n * These types are used to define the structure of the metadata for different activity types.\n ************/\n\nexport type ActivityV2Meta =\n | EmailDebtorsDossierActivityPayload\n | CallDebtorsDossierActivityPayload\n | MeetingDebtorsDossierActivityPayload\n | ChatDebtorsDossierActivityPayload;\n\nexport type EmailDebtorsDossierActivityPayload = {\n /* from: { email: string; name?: string; external?: boolean };\n to: { email: string; name?: string }[];\n cc?: { email: string; name?: string }[];\n bcc?: { email: string; name?: string }[];\n subject?: string;\n attachments?: AttachmentValue[]; */\n};\n\nexport type CallDebtorsDossierActivityPayload = {\n didNotAnswer: boolean;\n /* from: { phone: string; name?: string; external?: boolean };\n to: string;\n duration?: number;\n recordingUrl?: string;\n transcription?: string; */\n};\n\nexport type MeetingDebtorsDossierActivityPayload = {\n /* organizer: string;\n participants: string[];\n location?: string;\n startTime: string;\n endTime: string; */\n};\n\nexport type ChatDebtorsDossierActivityPayload = {\n /* from: { phone: string; name?: string; external?: boolean };\n to: string[]; */\n message: string;\n platform: 'whatsapp' | 'sms';\n};\n"]}
@@ -33,10 +33,12 @@ export type SegmentVehicle = {
33
33
  soldPrice?: number;
34
34
  daysToSell?: number;
35
35
  daysOnLot?: number;
36
+ highlights?: string[];
36
37
  };
37
38
  export type SegmentSummary = {
38
39
  key: string;
39
40
  label: string;
41
+ category?: string;
40
42
  parts: SegmentPart[];
41
43
  customers: number;
42
44
  sold: number;
@@ -46,8 +48,18 @@ export type SegmentSummary = {
46
48
  daysAvailableMedian?: number;
47
49
  stock: number;
48
50
  priceMedian?: number;
51
+ priceRange?: SegmentPriceRange;
52
+ years?: Record<number, number>;
53
+ featureHighlights?: string[];
49
54
  examples?: SegmentExampleVehicle[];
50
55
  };
56
+ export type SegmentPriceRange = {
57
+ lo: number;
58
+ q1: number;
59
+ med: number;
60
+ q3: number;
61
+ hi: number;
62
+ };
51
63
  export type AnalysisPurchasesResponse = {
52
64
  totals: {
53
65
  stock: number;
@@ -1 +1 @@
1
- {"version":3,"file":"analysis-purchases.d.ts","sourceRoot":"/","sources":["types/analysis-purchases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAaF,MAAM,MAAM,wBAAwB,GAAG;IAErC,IAAI,EAAE,MAAM,CAAC;IAEb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAE3B,GAAG,EAAE,MAAM,CAAC;IAEZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,EAAE,MAAM,CAAC;IAMb,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IAMd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QAEd,IAAI,EAAE,MAAM,CAAC;QAEb,OAAO,EAAE,MAAM,CAAC;QAEhB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,GAAG,EAAE,cAAc,EAAE,CAAC;IAEtB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,GAAG;IAE3D,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IAExB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"analysis-purchases.d.ts","sourceRoot":"/","sources":["types/analysis-purchases.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analysis-purchases.js","sourceRoot":"/","sources":["types/analysis-purchases.ts"],"names":[],"mappings":"","sourcesContent":["import { ReferenceData } from '@bisondesk/commons-sdk/utils';\n\nexport type AnalysisPurchasesMeta = {\n referenceData: ReferenceData;\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// Segment insights (\"what segment should we buy\").\n//\n// A \"segment\" is a MINED combination of vehicle attributes (category + 1..N of\n// make+model, body style, euro norm, axle config, HP/age/mileage band, features)\n// discovered by frequent-itemset mining over the stock and sold\n// populations — as shallow as `Tipper · 6x4` or as deep as a near-full spec,\n// wherever the sales evidence sits. Segments overlap: one vehicle can belong\n// to several. Hot/cold rank the two ends of days-of-supply.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport type AnalysisPurchasesRequest = {\n /** ISO date, inclusive */\n from: string;\n /** ISO date, exclusive */\n to: string;\n};\n\n/** One component of a composite segment key (e.g. `{ dimension: 'make', label: 'DAF' }`). */\nexport type SegmentPart = { dimension: string; key: string; label: string };\n\nexport type SegmentExampleVehicle = {\n vehicleId: string;\n stockNumber: string;\n imageUrl?: string;\n};\n\nexport type SegmentVehicle = {\n vehicleId: string;\n stockNumber: string;\n /** Precomputed vehicle display title (`vehicle.internal.description.title`). */\n title?: string;\n imageUrl?: string;\n make: string;\n modelName?: string;\n advertisingYear?: number;\n axleConfiguration?: string;\n horsepower?: number;\n currentPrice?: number;\n /** Odometer reading in km (`vehicle.external.condition.odometer.km`). */\n mileage?: number;\n /** Registration country code, e.g. \"BE\" (`…history.currentRegistration.country`). */\n countryCode?: string;\n /** Sold units: the winning opportunity (`sale.opportunityId`) — for price + future deal details. */\n opportunityId?: string;\n /** Sold units: realized sale price (the won opportunity's amount). */\n soldPrice?: number;\n /** Hot (sold) examples: days from virtual-inventory entry to sale. */\n daysToSell?: number;\n /** Cold (stock) examples: days the unit has sat in inventory. */\n daysOnLot?: number;\n};\n\nexport type SegmentSummary = {\n /** Stable composite key (join of each key-dimension's bucket key). */\n key: string;\n /** Human label, e.g. \"DAF XF · Euro 6 · 4x2 · 450–499 HP · Lowdeck + Retarder\". */\n label: string;\n parts: SegmentPart[];\n customers: number;\n /** Vehicles in this segment sold within the window (vehicle `custom.sold` + `sale.soldAt`). */\n sold: number;\n /**\n * Days of supply: how long current unsold stock lasts at the window's sales rate\n * (`stock × windowDays / sold`). Lower = runs out sooner = buy more. Undefined\n * when nothing sold. This is the Hot ranking signal.\n */\n supplyDays?: number;\n /** Days since the most recent purchase (check-in) of a unit in this segment. */\n daysSinceLastPurchase?: number;\n /** Days since the most recent sale of a unit in this segment. */\n daysSinceLastSale?: number;\n daysAvailableMedian?: number;\n stock: number;\n /**\n * Median price for the segment: realized SALE price on the hot list (the won\n * opportunities' amounts), current LIST price on the cold list. Undefined when\n * the underlying units carry no price.\n */\n priceMedian?: number;\n /** Populated only on the hot / cold lists. */\n examples?: SegmentExampleVehicle[];\n};\n\nexport type AnalysisPurchasesResponse = {\n totals: {\n stock: number;\n /** Vehicles sold in the window (core categories) — the hot coverage denominator. */\n sold: number;\n /** Of those, how many fall in at least one hot (fast-moving) segment. */\n hotSold: number;\n /** Stock units falling in at least one cold (overstocked) segment. */\n coldStock: number;\n };\n /** Under-supplied segments (buy more), each with in-demand example vehicles. */\n hot: SegmentSummary[];\n /** Over-supplied segments (slow down), each with stock-on-lot example vehicles. */\n cold: SegmentSummary[];\n meta: AnalysisPurchasesMeta;\n};\n\n/** Expand one segment into its individual units (the detail drawer). */\nexport type SegmentUnitsRequest = AnalysisPurchasesRequest & {\n /** Composite key of the segment to expand (a `SegmentSummary.key`). */\n segmentKey: string;\n /** Which list the segment came from — selects in-stock (cold) vs sold (hot) units. */\n variant: 'hot' | 'cold';\n};\n\nexport type SegmentUnitsResponse = {\n key: string;\n label: string;\n parts: SegmentPart[];\n variant: 'hot' | 'cold';\n /** Segment-level counts (mirror SegmentSummary) so the drawer header needs no re-derivation. */\n stock: number;\n sold: number;\n supplyDays?: number;\n /** All units in the segment — in-stock with `daysOnLot` (cold) or sold with `daysToSell` (hot). */\n units: SegmentVehicle[];\n meta: AnalysisPurchasesMeta;\n};\n"]}
1
+ {"version":3,"file":"analysis-purchases.js","sourceRoot":"/","sources":["types/analysis-purchases.ts"],"names":[],"mappings":"","sourcesContent":["import { ReferenceData } from '@bisondesk/commons-sdk/utils';\n\nexport type AnalysisPurchasesMeta = {\n referenceData: ReferenceData;\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// Segment insights (\"what segment should we buy\").\n//\n// A \"segment\" is a MINED combination of vehicle attributes (category + 1..N of\n// make+model, body style, euro norm, axle config, HP/age/mileage band, features)\n// discovered by frequent-itemset mining over the stock and sold\n// populations — as shallow as `Tipper · 6x4` or as deep as a near-full spec,\n// wherever the sales evidence sits. Segments overlap: one vehicle can belong\n// to several. Hot/cold rank the two ends of days-of-supply.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport type AnalysisPurchasesRequest = {\n /** ISO date, inclusive */\n from: string;\n /** ISO date, exclusive */\n to: string;\n};\n\n/** One component of a composite segment key (e.g. `{ dimension: 'make', label: 'DAF' }`). */\nexport type SegmentPart = { dimension: string; key: string; label: string };\n\nexport type SegmentExampleVehicle = {\n vehicleId: string;\n stockNumber: string;\n imageUrl?: string;\n};\n\nexport type SegmentVehicle = {\n vehicleId: string;\n stockNumber: string;\n /** Precomputed vehicle display title (`vehicle.internal.description.title`). */\n title?: string;\n imageUrl?: string;\n make: string;\n modelName?: string;\n advertisingYear?: number;\n axleConfiguration?: string;\n horsepower?: number;\n currentPrice?: number;\n /** Odometer reading in km (`vehicle.external.condition.odometer.km`). */\n mileage?: number;\n /** Registration country code, e.g. \"BE\" (`…history.currentRegistration.country`). */\n countryCode?: string;\n /** Sold units: the winning opportunity (`sale.opportunityId`) — for price + future deal details. */\n opportunityId?: string;\n /** Sold units: realized sale price (the won opportunity's amount). */\n soldPrice?: number;\n /** Hot (sold) examples: days from virtual-inventory entry to sale. */\n daysToSell?: number;\n /** Cold (stock) examples: days the unit has sat in inventory. */\n daysOnLot?: number;\n /**\n * Pooled-hot spec labels this unit carries (the same ↗ specs the board badges on\n * cards — e.g. \"Hydraulics\", \"Topline\"), so the drawer's unit list shows which units\n * hold a fast-selling spec. Excludes specs the segment itself already names. Undefined\n * when none apply.\n */\n highlights?: string[];\n};\n\nexport type SegmentSummary = {\n /** Stable composite key (join of each key-dimension's bucket key). */\n key: string;\n /** Human label, e.g. \"DAF XF · Euro 6 · 4x2 · 450–499 HP · Lowdeck + Retarder\". */\n label: string;\n /**\n * Top-level vehicle category (e.g. \"Tractor Head\", \"Truck\", \"Trailer\", \"Van\"). Drives\n * the drawer chart: Tractor Head / Truck show the model-year histogram, everything\n * else shows the price-range band (year is less decision-relevant than price there).\n */\n category?: string;\n parts: SegmentPart[];\n customers: number;\n /** Vehicles in this segment sold within the window (vehicle `custom.sold` + `sale.soldAt`). */\n sold: number;\n /**\n * Days of supply: how long current unsold stock lasts at the window's sales rate\n * (`stock × windowDays / sold`). Lower = runs out sooner = buy more. Undefined\n * when nothing sold. This is the Hot ranking signal.\n */\n supplyDays?: number;\n /** Days since the most recent purchase (check-in) of a unit in this segment. */\n daysSinceLastPurchase?: number;\n /** Days since the most recent sale of a unit in this segment. */\n daysSinceLastSale?: number;\n daysAvailableMedian?: number;\n stock: number;\n /**\n * Median price for the segment: realized SALE price on the hot list (the won\n * opportunities' amounts), current LIST price on the cold list. Undefined when\n * the underlying units carry no price.\n */\n priceMedian?: number;\n /**\n * Five-number price summary for the price-range band (non-truck cards). Built from\n * the SAME prices as `priceMedian` (realized SALE prices on hot, current LIST prices\n * on cold), so `priceRange.med === priceMedian`. Undefined when no prices.\n */\n priceRange?: SegmentPriceRange;\n /**\n * Model (advertising) year → unit count, for the card's year histogram. Counts the\n * sold units on the hot list, the in-stock units on the cold list. Sparse — only\n * years actually present appear (the UI fills the min→max span).\n */\n years?: Record<number, number>;\n /**\n * Pooled spec \"buy signals\" present in this segment's stock: any mined spec part —\n * a feature, cabin model, euro norm, HP band, configuration, … — whose units clear\n * THIS category's days-of-supply by a wide margin fleet-wide (across all make+models),\n * even though anchoring + the roll-up keep it from forming its own segment (e.g.\n * hydraulics or a Topline cabin across tractor heads). Rendered as ↗ pills. The part\n * the segment already names in its own label is excluded. Empty/undefined when none.\n * Display labels, e.g. \"Hydraulics\", \"Topline\" — same shape as `SegmentVehicle.highlights`.\n */\n featureHighlights?: string[];\n /** Populated only on the hot / cold lists. */\n examples?: SegmentExampleVehicle[];\n};\n\n/**\n * Five-number price summary for the card's price-range band. Percentiles use the\n * nearest-rank method on (n-1); `med` equals the segment's `priceMedian`. When a\n * segment has a single unit, `lo === hi` and the band renders collapsed.\n */\nexport type SegmentPriceRange = {\n /** Lowest unit price. */\n lo: number;\n /** 25th-percentile price (interquartile-range start). */\n q1: number;\n /** Median unit price (equals priceMedian). */\n med: number;\n /** 75th-percentile price (interquartile-range end). */\n q3: number;\n /** Highest unit price. */\n hi: number;\n};\n\nexport type AnalysisPurchasesResponse = {\n totals: {\n stock: number;\n /** Vehicles sold in the window (core categories) — the hot coverage denominator. */\n sold: number;\n /** Of those, how many fall in at least one hot (fast-moving) segment. */\n hotSold: number;\n /** Stock units falling in at least one cold (overstocked) segment. */\n coldStock: number;\n };\n /** Under-supplied segments (buy more), each with in-demand example vehicles. */\n hot: SegmentSummary[];\n /** Over-supplied segments (slow down), each with stock-on-lot example vehicles. */\n cold: SegmentSummary[];\n meta: AnalysisPurchasesMeta;\n};\n\n/** Expand one segment into its individual units (the detail drawer). */\nexport type SegmentUnitsRequest = AnalysisPurchasesRequest & {\n /** Composite key of the segment to expand (a `SegmentSummary.key`). */\n segmentKey: string;\n /** Which list the segment came from — selects in-stock (cold) vs sold (hot) units. */\n variant: 'hot' | 'cold';\n};\n\nexport type SegmentUnitsResponse = {\n key: string;\n label: string;\n parts: SegmentPart[];\n variant: 'hot' | 'cold';\n /** Segment-level counts (mirror SegmentSummary) so the drawer header needs no re-derivation. */\n stock: number;\n sold: number;\n supplyDays?: number;\n /** All units in the segment — in-stock with `daysOnLot` (cold) or sold with `daysToSell` (hot). */\n units: SegmentVehicle[];\n meta: AnalysisPurchasesMeta;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bisondesk/core-sdk",
3
- "version": "1.0.600",
3
+ "version": "1.0.602",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "author": "TheTruckCompany",
@@ -0,0 +1,13 @@
1
+ export var ActivityType;
2
+ (function (ActivityType) {
3
+ ActivityType["CALL"] = "call";
4
+ ActivityType["MEETING"] = "meeting";
5
+ ActivityType["EMAIL"] = "email";
6
+ ActivityType["CHAT"] = "chat";
7
+ })(ActivityType || (ActivityType = {}));
8
+ export var ActivityActions;
9
+ (function (ActivityActions) {
10
+ ActivityActions["DELETE"] = "delete";
11
+ ActivityActions["EDIT"] = "edit";
12
+ })(ActivityActions || (ActivityActions = {}));
13
+ //# sourceMappingURL=activities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activities.js","sourceRoot":"","sources":["activities.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACf,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B"}
@@ -14,6 +14,12 @@ export enum ActivityActions {
14
14
  EDIT = 'edit',
15
15
  }
16
16
 
17
+ export type ActivityContact = {
18
+ id?: string;
19
+ phoneNumber?: string;
20
+ email?: string;
21
+ };
22
+
17
23
  export interface BaseActivity<Meta = ActivityV2Meta> {
18
24
  type: ActivityType;
19
25
  businessEntityId: BusinessEntityIds;
@@ -21,6 +27,8 @@ export interface BaseActivity<Meta = ActivityV2Meta> {
21
27
  description?: string;
22
28
  readonly?: boolean;
23
29
  meta?: Meta;
30
+ // The people called/emailed/etc in this activity.
31
+ contacts?: ActivityContact[];
24
32
  }
25
33
 
26
34
  export type NewActivity<Meta = ActivityV2Meta> = BaseActivity<Meta> & {
@@ -45,6 +53,7 @@ export type ActivityUpdate = {
45
53
  description?: string;
46
54
  type?: ActivityType;
47
55
  activityAt?: string;
56
+ contacts?: ActivityContact[];
48
57
  };
49
58
 
50
59
  export type ActivityEvent = BaseEvent &
@@ -55,6 +55,13 @@ export type SegmentVehicle = {
55
55
  daysToSell?: number;
56
56
  /** Cold (stock) examples: days the unit has sat in inventory. */
57
57
  daysOnLot?: number;
58
+ /**
59
+ * Pooled-hot spec labels this unit carries (the same ↗ specs the board badges on
60
+ * cards — e.g. "Hydraulics", "Topline"), so the drawer's unit list shows which units
61
+ * hold a fast-selling spec. Excludes specs the segment itself already names. Undefined
62
+ * when none apply.
63
+ */
64
+ highlights?: string[];
58
65
  };
59
66
 
60
67
  export type SegmentSummary = {
@@ -62,6 +69,12 @@ export type SegmentSummary = {
62
69
  key: string;
63
70
  /** Human label, e.g. "DAF XF · Euro 6 · 4x2 · 450–499 HP · Lowdeck + Retarder". */
64
71
  label: string;
72
+ /**
73
+ * Top-level vehicle category (e.g. "Tractor Head", "Truck", "Trailer", "Van"). Drives
74
+ * the drawer chart: Tractor Head / Truck show the model-year histogram, everything
75
+ * else shows the price-range band (year is less decision-relevant than price there).
76
+ */
77
+ category?: string;
65
78
  parts: SegmentPart[];
66
79
  customers: number;
67
80
  /** Vehicles in this segment sold within the window (vehicle `custom.sold` + `sale.soldAt`). */
@@ -84,10 +97,50 @@ export type SegmentSummary = {
84
97
  * the underlying units carry no price.
85
98
  */
86
99
  priceMedian?: number;
100
+ /**
101
+ * Five-number price summary for the price-range band (non-truck cards). Built from
102
+ * the SAME prices as `priceMedian` (realized SALE prices on hot, current LIST prices
103
+ * on cold), so `priceRange.med === priceMedian`. Undefined when no prices.
104
+ */
105
+ priceRange?: SegmentPriceRange;
106
+ /**
107
+ * Model (advertising) year → unit count, for the card's year histogram. Counts the
108
+ * sold units on the hot list, the in-stock units on the cold list. Sparse — only
109
+ * years actually present appear (the UI fills the min→max span).
110
+ */
111
+ years?: Record<number, number>;
112
+ /**
113
+ * Pooled spec "buy signals" present in this segment's stock: any mined spec part —
114
+ * a feature, cabin model, euro norm, HP band, configuration, … — whose units clear
115
+ * THIS category's days-of-supply by a wide margin fleet-wide (across all make+models),
116
+ * even though anchoring + the roll-up keep it from forming its own segment (e.g.
117
+ * hydraulics or a Topline cabin across tractor heads). Rendered as ↗ pills. The part
118
+ * the segment already names in its own label is excluded. Empty/undefined when none.
119
+ * Display labels, e.g. "Hydraulics", "Topline" — same shape as `SegmentVehicle.highlights`.
120
+ */
121
+ featureHighlights?: string[];
87
122
  /** Populated only on the hot / cold lists. */
88
123
  examples?: SegmentExampleVehicle[];
89
124
  };
90
125
 
126
+ /**
127
+ * Five-number price summary for the card's price-range band. Percentiles use the
128
+ * nearest-rank method on (n-1); `med` equals the segment's `priceMedian`. When a
129
+ * segment has a single unit, `lo === hi` and the band renders collapsed.
130
+ */
131
+ export type SegmentPriceRange = {
132
+ /** Lowest unit price. */
133
+ lo: number;
134
+ /** 25th-percentile price (interquartile-range start). */
135
+ q1: number;
136
+ /** Median unit price (equals priceMedian). */
137
+ med: number;
138
+ /** 75th-percentile price (interquartile-range end). */
139
+ q3: number;
140
+ /** Highest unit price. */
141
+ hi: number;
142
+ };
143
+
91
144
  export type AnalysisPurchasesResponse = {
92
145
  totals: {
93
146
  stock: number;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=comparables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparables.js","sourceRoot":"","sources":["comparables.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ export var OrganizatioRiskTags;
2
+ (function (OrganizatioRiskTags) {
3
+ OrganizatioRiskTags["BAD_FINANCIAL_INFO"] = "BAD_FINANCIAL_INFO";
4
+ OrganizatioRiskTags["VAT_NUMBER_INVALID"] = "VAT_NUMBER_INVALID";
5
+ OrganizatioRiskTags["INSTINCT"] = "INSTINCT";
6
+ OrganizatioRiskTags["NEW_CUSTOMER"] = "NEW_CUSTOMER";
7
+ OrganizatioRiskTags["BANK_ACCOUNT_BLOCKED"] = "BANK_ACCOUNT_BLOCKED";
8
+ OrganizatioRiskTags["NO_GPS"] = "NO_GPS";
9
+ })(OrganizatioRiskTags || (OrganizatioRiskTags = {}));
10
+ export var ContactActions;
11
+ (function (ContactActions) {
12
+ ContactActions["UPSERT"] = "upsert";
13
+ ContactActions["DELETE"] = "delete";
14
+ })(ContactActions || (ContactActions = {}));
15
+ export var OrganizationActions;
16
+ (function (OrganizationActions) {
17
+ OrganizationActions["ADD_ACTIVITY"] = "add_activity";
18
+ OrganizationActions["UPSERT"] = "upsert";
19
+ OrganizationActions["DELETE"] = "delete";
20
+ OrganizationActions["SELL_TO_ORGANIZATION"] = "sell_to_organization";
21
+ })(OrganizationActions || (OrganizationActions = {}));
22
+ export var MarketingChannel;
23
+ (function (MarketingChannel) {
24
+ MarketingChannel["Email"] = "email";
25
+ MarketingChannel["Whatsapp"] = "whatsapp";
26
+ MarketingChannel["Sms"] = "sms";
27
+ MarketingChannel["Phone"] = "phone";
28
+ })(MarketingChannel || (MarketingChannel = {}));
29
+ export var PartnerLevel;
30
+ (function (PartnerLevel) {
31
+ PartnerLevel["Internal"] = "05-internal";
32
+ PartnerLevel["Gold"] = "10-gold";
33
+ PartnerLevel["Silver"] = "20-silver";
34
+ PartnerLevel["Bronze"] = "30-bronze";
35
+ })(PartnerLevel || (PartnerLevel = {}));
36
+ export var SaveContactResolution;
37
+ (function (SaveContactResolution) {
38
+ SaveContactResolution["IgnoreDuplicates"] = "IGNORE_DUPLICATES";
39
+ SaveContactResolution["BlockDuplicates"] = "BLOCK_DUPLICATES";
40
+ })(SaveContactResolution || (SaveContactResolution = {}));
41
+ export var SaveOrgResolution;
42
+ (function (SaveOrgResolution) {
43
+ SaveOrgResolution["IgnoreDuplicates"] = "IGNORE_DUPLICATES";
44
+ SaveOrgResolution["BlockDuplicates"] = "BLOCK_DUPLICATES";
45
+ })(SaveOrgResolution || (SaveOrgResolution = {}));
46
+ export var CrmSearchScope;
47
+ (function (CrmSearchScope) {
48
+ CrmSearchScope["Tenant"] = "tenant";
49
+ CrmSearchScope["Conglomerate"] = "conglomerate";
50
+ })(CrmSearchScope || (CrmSearchScope = {}));
51
+ export var OrgEngagementType;
52
+ (function (OrgEngagementType) {
53
+ OrgEngagementType["offers"] = "offers";
54
+ OrgEngagementType["purchases"] = "purchases";
55
+ OrgEngagementType["opportunities"] = "opportunities";
56
+ OrgEngagementType["sales"] = "sales";
57
+ })(OrgEngagementType || (OrgEngagementType = {}));
58
+ //# sourceMappingURL=crm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm.js","sourceRoot":"","sources":["crm.ts"],"names":[],"mappings":"AAUA,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,gEAAyC,CAAA;IACzC,gEAAyC,CAAA;IACzC,4CAAqB,CAAA;IACrB,oDAA6B,CAAA;IAC7B,oEAA6C,CAAA;IAC7C,wCAAiB,CAAA;AACnB,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,oDAA6B,CAAA;IAC7B,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,oEAA6C,CAAA;AAC/C,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAgKD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,yCAAqB,CAAA;IACrB,+BAAW,CAAA;IACX,mCAAe,CAAA;AACjB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAWD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,wCAAwB,CAAA;IACxB,gCAAgB,CAAA;IAChB,oCAAoB,CAAA;IACpB,oCAAoB,CAAA;AACtB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AA6CD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,+DAAsC,CAAA;IACtC,6DAAoC,CAAA;AACtC,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,yDAAoC,CAAA;AACtC,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,oDAA+B,CAAA;IAC/B,oCAAe,CAAA;AACjB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["dashboard.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from '@bisondesk/commons-sdk/definitions';
2
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["definitions.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '@bisondesk/commons-sdk/fields';
2
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["fields.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["insights.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export var InterestActions;
2
+ (function (InterestActions) {
3
+ InterestActions["SET_INTEREST"] = "set_interest";
4
+ })(InterestActions || (InterestActions = {}));
5
+ export const isOpportunityInterest = (interest) => 'opportunityId' in interest;
6
+ //# sourceMappingURL=interests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interests.js","sourceRoot":"","sources":["interests.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,gDAA6B,CAAA;AAC/B,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAwBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAkB,EAAmC,EAAE,CAC3F,eAAe,IAAI,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ export var InternalEventTypes;
2
+ (function (InternalEventTypes) {
3
+ InternalEventTypes["VEHICLE_PURCHASE"] = "vehicle-purchases";
4
+ InternalEventTypes["ORGANIZATION"] = "organizations";
5
+ InternalEventTypes["CONTACT"] = "contacts";
6
+ InternalEventTypes["FINANCE_DOCUMENT"] = "finance-documents";
7
+ InternalEventTypes["OPPORTUNITY"] = "opportunities";
8
+ InternalEventTypes["VEHICLE"] = "vehicles";
9
+ InternalEventTypes["SALE_PAYMENT"] = "sale-payments";
10
+ InternalEventTypes["PURCHASE_PAYMENT"] = "vehicle-purchase-payments";
11
+ InternalEventTypes["OFFER"] = "offers";
12
+ })(InternalEventTypes || (InternalEventTypes = {}));
13
+ export var InternalNotificationChannels;
14
+ (function (InternalNotificationChannels) {
15
+ InternalNotificationChannels["APP"] = "app";
16
+ InternalNotificationChannels["EMAIL"] = "email";
17
+ })(InternalNotificationChannels || (InternalNotificationChannels = {}));
18
+ //# sourceMappingURL=internal-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-events.js","sourceRoot":"","sources":["internal-events.ts"],"names":[],"mappings":"AASA,MAAM,CAAN,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,4DAAsC,CAAA;IACtC,oDAA8B,CAAA;IAC9B,0CAAoB,CAAA;IACpB,4DAAsC,CAAA;IACtC,mDAA6B,CAAA;IAC7B,0CAAoB,CAAA;IACpB,oDAA8B,CAAA;IAC9B,oEAA8C,CAAA;IAC9C,sCAAgB,CAAA;AAClB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,QAU7B;AAED,MAAM,CAAN,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACtC,2CAAW,CAAA;IACX,+CAAe,CAAA;AACjB,CAAC,EAHW,4BAA4B,KAA5B,4BAA4B,QAGvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=internet-opportunities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internet-opportunities.js","sourceRoot":"","sources":["internet-opportunities.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=internet-vehicles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internet-vehicles.js","sourceRoot":"","sources":["internet-vehicles.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leasing-administration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing-administration.js","sourceRoot":"","sources":["leasing-administration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leasing-debtors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing-debtors.js","sourceRoot":"","sources":["leasing-debtors.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leasing-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing-search.js","sourceRoot":"","sources":["leasing-search.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export var LeasingItemsPaymentSplit;
2
+ (function (LeasingItemsPaymentSplit) {
3
+ LeasingItemsPaymentSplit["Customer"] = "customer";
4
+ LeasingItemsPaymentSplit["Split"] = "split";
5
+ LeasingItemsPaymentSplit["Company"] = "company";
6
+ })(LeasingItemsPaymentSplit || (LeasingItemsPaymentSplit = {}));
7
+ //# sourceMappingURL=leasing-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing-settings.js","sourceRoot":"","sources":["leasing-settings.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,iDAAqB,CAAA;IACrB,2CAAe,CAAA;IACf,+CAAmB,CAAA;AACrB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC"}
@@ -0,0 +1,38 @@
1
+ export var LeasingContractActions;
2
+ (function (LeasingContractActions) {
3
+ LeasingContractActions["CREATE_FINANCE_DOCUMENT"] = "create_finance_document";
4
+ LeasingContractActions["START_RETAKE_VEHICLE"] = "start_retake_vehicle";
5
+ LeasingContractActions["END_RETAKE_VEHICLE"] = "end_retake_vehicle";
6
+ LeasingContractActions["START_CONTRACT_END"] = "start_contract_end";
7
+ LeasingContractActions["END_CONTRACT"] = "end_contract";
8
+ LeasingContractActions["CANCEL_RETAKE_VEHICLE"] = "cancel_retake_vehicle";
9
+ })(LeasingContractActions || (LeasingContractActions = {}));
10
+ export var LeasingContractSource;
11
+ (function (LeasingContractSource) {
12
+ LeasingContractSource["HYPERPORTAL"] = "hyperportal";
13
+ LeasingContractSource["BISONDESK"] = "bisondesk";
14
+ })(LeasingContractSource || (LeasingContractSource = {}));
15
+ export var LeasingContractStatus;
16
+ (function (LeasingContractStatus) {
17
+ LeasingContractStatus["DRAFT"] = "draft";
18
+ LeasingContractStatus["DISCARDED"] = "discarded";
19
+ LeasingContractStatus["PAUSED"] = "paused";
20
+ LeasingContractStatus["ACTIVE"] = "active";
21
+ LeasingContractStatus["LEASING_RETURN"] = "leasing_return";
22
+ LeasingContractStatus["RECOVERED"] = "recovered";
23
+ LeasingContractStatus["ENDING"] = "ending";
24
+ LeasingContractStatus["ENDED"] = "ended";
25
+ })(LeasingContractStatus || (LeasingContractStatus = {}));
26
+ export var LeasingRemindersSortableColumns;
27
+ (function (LeasingRemindersSortableColumns) {
28
+ LeasingRemindersSortableColumns["NextActionAt"] = "next_action_at";
29
+ LeasingRemindersSortableColumns["OrganizationName"] = "organization_name";
30
+ LeasingRemindersSortableColumns["RemindersCount"] = "reminders_count";
31
+ LeasingRemindersSortableColumns["Status"] = "status";
32
+ })(LeasingRemindersSortableColumns || (LeasingRemindersSortableColumns = {}));
33
+ export var LEASING_EXPORT_TYPES;
34
+ (function (LEASING_EXPORT_TYPES) {
35
+ LEASING_EXPORT_TYPES["RENTAL_SOLUTIONS"] = "rental-solutions";
36
+ LEASING_EXPORT_TYPES["DEFAULT"] = "default";
37
+ })(LEASING_EXPORT_TYPES || (LEASING_EXPORT_TYPES = {}));
38
+ //# sourceMappingURL=leasing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leasing.js","sourceRoot":"","sources":["leasing.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,6EAAmD,CAAA;IACnD,uEAA6C,CAAA;IAC7C,mEAAyC,CAAA;IACzC,mEAAyC,CAAA;IACzC,uDAA6B,CAAA;IAC7B,yEAA+C,CAAA;AACjD,CAAC,EAPW,sBAAsB,KAAtB,sBAAsB,QAOjC;AA8DD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;AACzB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED,MAAM,CAAN,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,wCAAe,CAAA;IACf,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,0DAAiC,CAAA;IACjC,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;AACjB,CAAC,EATW,qBAAqB,KAArB,qBAAqB,QAShC;AAuQD,MAAM,CAAN,IAAY,+BAKX;AALD,WAAY,+BAA+B;IACzC,kEAA+B,CAAA;IAC/B,yEAAsC,CAAA;IACtC,qEAAkC,CAAA;IAClC,oDAAiB,CAAA;AACnB,CAAC,EALW,+BAA+B,KAA/B,+BAA+B,QAK1C;AAgGD,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,6DAAqC,CAAA;IACrC,2CAAmB,CAAA;AACrB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B"}
@@ -0,0 +1,35 @@
1
+ export var MarketingPlatform;
2
+ (function (MarketingPlatform) {
3
+ MarketingPlatform["autoscout24"] = "autoscout24";
4
+ MarketingPlatform["autoline"] = "autoline";
5
+ MarketingPlatform["exportseller"] = "exportseller";
6
+ MarketingPlatform["machineryplanet"] = "machineryplanet";
7
+ MarketingPlatform["machinetrack"] = "machinetrack";
8
+ MarketingPlatform["marktnet"] = "marktnet";
9
+ MarketingPlatform["mobile"] = "mobile";
10
+ MarketingPlatform["truck1st"] = "truck1st";
11
+ MarketingPlatform["trucks"] = "trucks";
12
+ MarketingPlatform["truckscout"] = "truckscout24";
13
+ MarketingPlatform["tweedehandsbe"] = "2ehandsbe";
14
+ MarketingPlatform["viamobilis"] = "planettrucks";
15
+ MarketingPlatform["youtube"] = "youtube";
16
+ })(MarketingPlatform || (MarketingPlatform = {}));
17
+ export var MarketingEventStatus;
18
+ (function (MarketingEventStatus) {
19
+ MarketingEventStatus["Scheduled"] = "scheduled";
20
+ MarketingEventStatus["Processing"] = "processing";
21
+ MarketingEventStatus["Skipped"] = "skipped";
22
+ MarketingEventStatus["Error"] = "error";
23
+ MarketingEventStatus["Sent"] = "processed";
24
+ })(MarketingEventStatus || (MarketingEventStatus = {}));
25
+ export var MarketingEventType;
26
+ (function (MarketingEventType) {
27
+ MarketingEventType["PriceDrop"] = "price-drop";
28
+ MarketingEventType["PartnerOffer"] = "partner-offer";
29
+ })(MarketingEventType || (MarketingEventType = {}));
30
+ export var MarketingMessageChannelType;
31
+ (function (MarketingMessageChannelType) {
32
+ MarketingMessageChannelType["Whatsapp"] = "whatsapp";
33
+ MarketingMessageChannelType["Email"] = "email";
34
+ })(MarketingMessageChannelType || (MarketingMessageChannelType = {}));
35
+ //# sourceMappingURL=marketing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing.js","sourceRoot":"","sources":["marketing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,wDAAmC,CAAA;IACnC,kDAA6B,CAAA;IAC7B,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;AACrB,CAAC,EAdW,iBAAiB,KAAjB,iBAAiB,QAc5B;AA8DD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,iDAAyB,CAAA;IACzB,2CAAmB,CAAA;IACnB,uCAAe,CAAA;IACf,0CAAkB,CAAA;AACpB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAED,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,8CAAwB,CAAA;IACxB,oDAA8B,CAAA;AAChC,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,oDAAqB,CAAA;IACrB,8CAAe,CAAA;AACjB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC"}
@@ -0,0 +1,56 @@
1
+ export var OfferActions;
2
+ (function (OfferActions) {
3
+ OfferActions["CREATE_BID"] = "create_bid";
4
+ OfferActions["SET_FINAL_VALUATION"] = "set_final_valuation";
5
+ OfferActions["LOSE"] = "lose";
6
+ OfferActions["REOPEN"] = "reopen";
7
+ OfferActions["SET_DOCUMENTS"] = "set_documents";
8
+ OfferActions["SET_METADATA"] = "set_metadata";
9
+ OfferActions["SEE_SUPPLIER"] = "see_supplier";
10
+ OfferActions["SEE_INSIGHTS"] = "see_insights";
11
+ OfferActions["VIEW_BIDS"] = "view_bids";
12
+ OfferActions["DELETE_FINAL_VALUATION"] = "delete_final_valuation";
13
+ OfferActions["SEE_ASKING_PRICE"] = "see_asking_price";
14
+ OfferActions["ACCEPT_NEGOTIATION"] = "accept_negotiation";
15
+ OfferActions["UNDO_ACCEPT_NEGOTIATION"] = "undo_accept_negotiation";
16
+ OfferActions["SET_SUPPLIER_VEHICLE"] = "set_supplier_vehicle";
17
+ OfferActions["CAN_PURCHASE"] = "can_purchase";
18
+ })(OfferActions || (OfferActions = {}));
19
+ export var OfferBidActions;
20
+ (function (OfferBidActions) {
21
+ OfferBidActions["EDIT_BID"] = "create_bid";
22
+ OfferBidActions["DELETE_BID"] = "delete_bid";
23
+ })(OfferBidActions || (OfferBidActions = {}));
24
+ export var OfferStatus;
25
+ (function (OfferStatus) {
26
+ OfferStatus["PROSPECTION"] = "prospection";
27
+ OfferStatus["VALUATION"] = "valuation";
28
+ OfferStatus["NEGOTIATION"] = "negotiation";
29
+ })(OfferStatus || (OfferStatus = {}));
30
+ export var OfferLostReasonValues;
31
+ (function (OfferLostReasonValues) {
32
+ OfferLostReasonValues["Expensive"] = "expensive";
33
+ OfferLostReasonValues["NoMarket"] = "no_market";
34
+ OfferLostReasonValues["BadExperience"] = "bad_experience";
35
+ OfferLostReasonValues["NoAnswer"] = "supplier_mia";
36
+ OfferLostReasonValues["Other"] = "other";
37
+ OfferLostReasonValues["Automatic"] = "automatic";
38
+ })(OfferLostReasonValues || (OfferLostReasonValues = {}));
39
+ export var OfferBidType;
40
+ (function (OfferBidType) {
41
+ OfferBidType["INTERNAL"] = "internal";
42
+ OfferBidType["EXTERNAL"] = "external";
43
+ })(OfferBidType || (OfferBidType = {}));
44
+ export var OfferWarningsCode;
45
+ (function (OfferWarningsCode) {
46
+ OfferWarningsCode["NO_SUPPLIER"] = "no_supplier";
47
+ })(OfferWarningsCode || (OfferWarningsCode = {}));
48
+ export const OfferStatusOrder = [
49
+ OfferStatus.PROSPECTION,
50
+ OfferStatus.VALUATION,
51
+ OfferStatus.NEGOTIATION,
52
+ ];
53
+ export const OfferWonColumnId = 'closed_won';
54
+ export const OfferKanbanColumns = [...OfferStatusOrder, OfferWonColumnId];
55
+ export const OfferKanbanEndColumns = [OfferWonColumnId];
56
+ //# sourceMappingURL=offers.js.map