@bisondesk/core-sdk 1.0.621 → 1.0.623

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 (106) hide show
  1. package/lib/types/intercompany-payments.d.ts +23 -0
  2. package/lib/types/intercompany-payments.d.ts.map +1 -0
  3. package/lib/types/intercompany-payments.js +2 -0
  4. package/lib/types/intercompany-payments.js.map +1 -0
  5. package/lib/types/opportunities.d.ts +7 -5
  6. package/lib/types/opportunities.d.ts.map +1 -1
  7. package/lib/types/opportunities.js +1 -0
  8. package/lib/types/opportunities.js.map +1 -1
  9. package/lib/types/opportunity-payments.d.ts +68 -0
  10. package/lib/types/opportunity-payments.d.ts.map +1 -0
  11. package/lib/types/opportunity-payments.js +7 -0
  12. package/lib/types/opportunity-payments.js.map +1 -0
  13. package/lib/types/payments.d.ts +3 -109
  14. package/lib/types/payments.d.ts.map +1 -1
  15. package/lib/types/payments.js +1 -6
  16. package/lib/types/payments.js.map +1 -1
  17. package/lib/types/prospects.d.ts +6 -1
  18. package/lib/types/prospects.d.ts.map +1 -1
  19. package/lib/types/prospects.js.map +1 -1
  20. package/lib/types/vehicle-purchase-payments.d.ts +45 -0
  21. package/lib/types/vehicle-purchase-payments.d.ts.map +1 -0
  22. package/lib/types/vehicle-purchase-payments.js +2 -0
  23. package/lib/types/vehicle-purchase-payments.js.map +1 -0
  24. package/lib/utils/opportunities.d.ts +2 -0
  25. package/lib/utils/opportunities.d.ts.map +1 -1
  26. package/lib/utils/opportunities.js +2 -0
  27. package/lib/utils/opportunities.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/types/activities.js +13 -0
  30. package/src/types/activities.js.map +1 -0
  31. package/src/types/comparables.js +2 -0
  32. package/src/types/comparables.js.map +1 -0
  33. package/src/types/crm.js +58 -0
  34. package/src/types/crm.js.map +1 -0
  35. package/src/types/dashboard.js +2 -0
  36. package/src/types/dashboard.js.map +1 -0
  37. package/src/types/definitions.js +2 -0
  38. package/src/types/definitions.js.map +1 -0
  39. package/src/types/fields.js +2 -0
  40. package/src/types/fields.js.map +1 -0
  41. package/src/types/insights.js +2 -0
  42. package/src/types/insights.js.map +1 -0
  43. package/src/types/intercompany-payments.ts +41 -0
  44. package/src/types/interests.js +6 -0
  45. package/src/types/interests.js.map +1 -0
  46. package/src/types/internal-events.js +18 -0
  47. package/src/types/internal-events.js.map +1 -0
  48. package/src/types/internet-opportunities.js +2 -0
  49. package/src/types/internet-opportunities.js.map +1 -0
  50. package/src/types/internet-vehicles.js +2 -0
  51. package/src/types/internet-vehicles.js.map +1 -0
  52. package/src/types/leasing-administration.js +2 -0
  53. package/src/types/leasing-administration.js.map +1 -0
  54. package/src/types/leasing-debtors.js +2 -0
  55. package/src/types/leasing-debtors.js.map +1 -0
  56. package/src/types/leasing-search.js +2 -0
  57. package/src/types/leasing-search.js.map +1 -0
  58. package/src/types/leasing-settings.js +7 -0
  59. package/src/types/leasing-settings.js.map +1 -0
  60. package/src/types/leasing.js +38 -0
  61. package/src/types/leasing.js.map +1 -0
  62. package/src/types/marketing.js +35 -0
  63. package/src/types/marketing.js.map +1 -0
  64. package/src/types/offers.js +56 -0
  65. package/src/types/opportunities.js +107 -0
  66. package/src/types/opportunities.js.map +1 -0
  67. package/src/types/opportunities.ts +8 -4
  68. package/src/types/opportunity-payments.ts +77 -0
  69. package/src/types/payments.js +7 -0
  70. package/src/types/payments.ts +29 -131
  71. package/src/types/picklists.js +2 -0
  72. package/src/types/picklists.js.map +1 -0
  73. package/src/types/prospects.ts +8 -1
  74. package/src/types/quotes.js +42 -0
  75. package/src/types/recently-viewed.js +2 -0
  76. package/src/types/recently-viewed.js.map +1 -0
  77. package/src/types/reservations.js +5 -0
  78. package/src/types/reservations.js.map +1 -0
  79. package/src/types/roi-ratings.js +5 -0
  80. package/src/types/roi-ratings.js.map +1 -0
  81. package/src/types/saved-filters.js +9 -0
  82. package/src/types/saved-filters.js.map +1 -0
  83. package/src/types/search.js +2 -0
  84. package/src/types/search.js.map +1 -0
  85. package/src/types/settings.js +2 -0
  86. package/src/types/settings.js.map +1 -0
  87. package/src/types/templates.js +2 -0
  88. package/src/types/templates.js.map +1 -0
  89. package/src/types/tenants.js +21 -0
  90. package/src/types/tenants.js.map +1 -0
  91. package/src/types/user-performance.js +7 -0
  92. package/src/types/user-performance.js.map +1 -0
  93. package/src/types/utils.js +2 -0
  94. package/src/types/validation.js +2 -0
  95. package/src/types/validation.js.map +1 -0
  96. package/src/types/vehicle-purchase-payments.ts +58 -0
  97. package/src/types/vehicle-sales.js +6 -0
  98. package/src/types/vehicle-sales.js.map +1 -0
  99. package/src/types/vehicles.js +98 -0
  100. package/src/types/vehicles.js.map +1 -0
  101. package/src/utils/leasing.js +6 -0
  102. package/src/utils/leasing.js.map +1 -0
  103. package/src/utils/opportunities.js +48 -0
  104. package/src/utils/opportunities.js.map +1 -0
  105. package/src/utils/opportunities.ts +20 -0
  106. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prospects.d.ts","sourceRoot":"/","sources":["types/prospects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prospects.d.ts","sourceRoot":"/","sources":["types/prospects.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prospects.js","sourceRoot":"/","sources":["types/prospects.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IAGjB,kCAAe,CAAA;IACf,gDAA6B,CAAA;IAC7B,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;IAC7B,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;AACnB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,UAAU;IACzB,cAAc,CAAC,OAAO;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,mBAAmB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,wBAAwB,GAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;IACrB,yDAAiC,CAAA;IACjC,+CAAuB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IAGb,qCAAiB,CAAA;AACnB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC7D,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;CAC7B,CAAC;AASF,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;AACnB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAOD,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,gCAAW,CAAA;AACb,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAMD,MAAM,CAAC,MAAM,eAAe,GAAsC;IAChE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/B,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CAC3B,CAAC;AAOF,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CAAC","sourcesContent":["import { Task } from '@bisondesk/commons-sdk/tasks';\nimport { MultiLangValue, NextList, PaginatedList } from '@bisondesk/commons-sdk/types';\nimport { Activity } from './activities.js';\nimport { Contact, Organization } from './crm.js';\nimport { Interest } from './interests.js';\nimport { BaseEvent } from './internal-events.js';\nimport { Offer } from './offers.js';\nimport { Opportunity } from './opportunities.js';\nimport { BaseSearchRequest, SearchRequest, SortFilter } from './search.js';\nimport { DataRecord, ReferenceData } from './utils.js';\n\nexport enum ProspectActions {\n CLOSE = 'close',\n REOPEN = 'reopen',\n ENGAGE = 'engage',\n // Claiming an unassigned prospect is open to any active sales rep — a deliberate widening of\n // ADR-0013's permission matrix (ADR-0021 §7).\n CLAIM = 'claim',\n SET_METADATA = 'set_metadata',\n SET_OBJECTIVES = 'set_objectives',\n SET_CUSTOMER = 'set_customer',\n ADD_ACTIVITY = 'add_activity',\n DELETE = 'delete',\n}\n\nexport enum ProspectStatus {\n NURTURE = 'nurture',\n ATTEMPTING = 'attempting',\n ENGAGED = 'engaged',\n CLOSED = 'closed',\n}\n\nexport const ProspectStatusOrder: ProspectStatus[] = [\n ProspectStatus.NURTURE,\n ProspectStatus.ATTEMPTING,\n ProspectStatus.ENGAGED,\n];\n\nexport const ProspectKanbanColumns = [...ProspectStatusOrder, ProspectStatus.CLOSED];\n\nexport const ProspectKanbanEndColumns: string[] = [ProspectStatus.CLOSED];\n\nexport enum ProspectClosedReason {\n CONVERTED = 'converted',\n DEFERRED = 'deferred',\n NO_REPLY = 'no_reply',\n NOT_INTERESTED = 'not_interested',\n AUTOMATIC = 'automatic',\n}\n\nexport enum ProspectPriority {\n LOW = 'low',\n NORMAL = 'normal',\n HIGH = 'high',\n // \"Call me\" fast lane (ADR-0021 §8): a manual URGENT prospect sorts ahead of every\n // engine-ranked card. Above NORMAL, priority dominates scoreTier in the \"next\" cursor.\n URGENT = 'urgent',\n}\n\n/**\n * Numeric rank for priority, computed at index time into `custom.priorityRank` so OpenSearch\n * can sort ordinally rather than alphabetically. Higher = more urgent.\n */\nexport const PRIORITY_RANK: Record<ProspectPriority, number> = {\n [ProspectPriority.LOW]: 1,\n [ProspectPriority.NORMAL]: 2,\n [ProspectPriority.HIGH]: 3,\n [ProspectPriority.URGENT]: 4,\n};\n\n/**\n * How a prospect entered the system (ADR-0021 §3). The engine's truncate-and-regenerate\n * delete predicate only ever touches `AUTO` cards, so `MANUAL`/`IMPORT` cards survive\n * regardless of status. `IMPORT` is reserved for the v2 import pipeline — nothing produces\n * it in v1, but it stays in the enum because the discriminator is part of the delete-predicate\n * safety contract.\n */\nexport enum ProspectSource {\n MANUAL = 'manual',\n AUTO = 'auto',\n IMPORT = 'import',\n}\n\n/**\n * Discrete ranking band for an auto prospect (ADR-0021 §4). Each generator maps its own raw\n * score into these bands via its own thresholds; the tier — not a raw number — is what the\n * engine persists and the \"next\" cursor sorts on.\n */\nexport enum ProspectScoreTier {\n COLD = 'cold',\n LUKEWARM = 'lukewarm',\n WARM = 'warm',\n HOT = 'hot',\n}\n\n/**\n * Numeric rank for a score tier, computed at index time into `custom.scoreTierRank`\n * (0 = unscored/no tier). Higher = warmer.\n */\nexport const SCORE_TIER_RANK: Record<ProspectScoreTier, number> = {\n [ProspectScoreTier.COLD]: 1,\n [ProspectScoreTier.LUKEWARM]: 2,\n [ProspectScoreTier.WARM]: 3,\n [ProspectScoreTier.HOT]: 4,\n};\n\n/**\n * Virtual sort field for search requests: \"importance\" is the compound priority → tier\n * ranking (ADR-0021 §5). The backend expands it server-side, so clients never spell out\n * the underlying fields.\n */\nexport const PROSPECT_IMPORTANCE_SORT_FIELD = 'prospect.importance';\n\n/** One line of the score breakdown recorded for explanation (raw score, thresholds, dampening). */\nexport type ProspectScoreDetail = {\n name: string;\n value: number | string;\n};\n\n/**\n * Denormalized vehicle display data carried on each candidate vehicle, so the UI can render the\n * anchor and runner-ups without a second fetch. Mirrors `InterestLead.vehicleData` (and extends it\n * with make/model/category/vin), keeping the two card surfaces consistent.\n */\nexport type ProspectVehicleData = {\n title: string;\n mainPictureUrl?: string;\n stockNumber?: string;\n\n category: string;\n bodywork?: string;\n makeName: string;\n modelName?: string;\n typeName?: string;\n\n used?: boolean; // Vehicle.condition.used — false/absent means new.\n damaged?: boolean;\n\n advertisingYear?: number;\n km?: number;\n emissionsClass?: string;\n emissionsSubClass?: string;\n cabinModel?: string;\n configuration?: string;\n vin?: string;\n\n // Notable boolean equipment, mirroring Vehicle.accessories (and superstructure.crane).\n features?: {\n adr?: boolean;\n jumbo?: boolean;\n crane?: boolean;\n hydraulicTipperKit?: boolean;\n lowDeck?: boolean;\n retarderIntarder?: boolean;\n };\n};\n\n/** A candidate anchor/runner-up vehicle, scored by the lead-engine matcher. */\nexport type ProspectVehicleCandidate = {\n vehicleId: string;\n /** Branch that holds this stock. The anchor's branch decides the card's branch (ADR-0021 §2). */\n branchId: string;\n score: number;\n vehicleData: ProspectVehicleData;\n};\n\n/** A recommended account manager with an affinity score and the reasons behind it. */\nexport type ProspectRecommendedAm = {\n userId: string;\n score: number;\n reasons: string[];\n};\n\nexport type ProspectObjective = {\n id: string;\n title: MultiLangValue;\n};\n\n/**\n * Inline identity for a card whose person/company matches no CRM record yet — the \"draft party\"\n * of ADR-0021 §9. Carries enough structure to materialise a Contact (first/last name, phone,\n * email) and/or an Organization (orgName, VAT, country) when the draft is converted\n * (`SET_CUSTOMER`, grown). Drafts enter through import or manual entry only — the engine never\n * produces them — and the nightly truncate never touches them.\n */\nexport type ProspectPartyDraft = {\n // contact identity\n firstName?: string;\n lastName?: string;\n phone?: string;\n email?: string;\n // organization identity\n orgName?: string;\n vatNumber?: string;\n countryCode?: string;\n /**\n * Client sector (Tier 1) and sub-industry (Tier 2), captured on the draft so they survive\n * promotion to an Organization. Same picklists and semantics as the Organization fields of the\n * same name (`ORG_INDUSTRY_PICKLIST_ID` / `SUB_INDUSTRY_PICKLIST_ID`).\n */\n industry?: string;\n subIndustry?: string;\n /**\n * The draft party's interests, embedded on the card — a draft has no CRM record to hang\n * interests on, so they ride the card until conversion copies them onto the linked\n * Contact/Organization (where the lead engine picks them up; embedded ones never feed it).\n */\n interests?: Interest[];\n};\n\ntype BaseProspect = {\n contactId?: string;\n organizationId?: string;\n /** Draft-party identity when the card is linked to no Contact/Organization yet (ADR §9). */\n partyDraft?: ProspectPartyDraft;\n branchId: string;\n accountManager?: string;\n priority: ProspectPriority;\n objectives: ProspectObjective[];\n};\n\nexport type NewProspect = BaseProspect & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n};\n\nexport type Prospect = BaseProspect & {\n id: string;\n\n status: ProspectStatus;\n\n // ── Engine-owned fields (ADR-0021). The manual write path treats these as read-only\n // (Joi.forbidden in the user schemas) so a human edit is never silently overwritten by the\n // next nightly run. `source` is always present on a persisted card; the rest exist only on\n // scored auto cards.\n source: ProspectSource;\n scoreTier?: ProspectScoreTier;\n scoreDetails?: ProspectScoreDetail[];\n /** Ordered by score desc; `vehicles[0]` is the anchor the rep opens the call with. */\n vehicles?: ProspectVehicleCandidate[];\n recommendedAccountManagers?: ProspectRecommendedAm[];\n\n attemptingAt?: string;\n attemptingBy?: string;\n engagedAt?: string;\n engagedBy?: string;\n closedAt?: string;\n closedBy?: string;\n closedReason?: ProspectClosedReason;\n\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n};\n\nexport type ProspectUpdate = {\n contactId?: string | null;\n organizationId?: string | null;\n partyDraft?: ProspectPartyDraft | null;\n branchId?: string;\n accountManager?: string | null;\n priority?: ProspectPriority;\n objectives?: ProspectObjective[];\n\n close?: boolean;\n closedReason?: ProspectClosedReason;\n reopen?: boolean;\n engage?: boolean;\n};\n\nexport type ProspectBff = {\n prospect: DataRecord<Prospect>;\n contact?: DataRecord<Contact>;\n org?: DataRecord<Organization>;\n tasks: DataRecord<Task>[];\n\n /** All interests in scope: the linked contact/org's, or the draft party's embedded ones. */\n interests: Interest[];\n /** Opportunities for the linked contact/org, deduped by id. */\n opportunities: Opportunity[];\n /** Offers for the linked contact/org, deduped by id, newest first. */\n offers: Offer[];\n /** The other prospect lines on the same contact/org (this one excluded), newest first. */\n relatedProspects: Prospect[];\n /** Most-recent interaction history (first page): the card's own + linked contact/org activities. */\n activities: DataRecord<Activity>[];\n /** Cursor for the next page of the merged activity history; absent when fully loaded. */\n activitiesNextToken?: string;\n};\n\n/************\n *\n * Search\n */\n\nexport type SearchProspect = {\n contact?: Contact;\n prospect: Prospect;\n org?: Organization;\n /**\n * Interests denormalized from the prospect's lead:\n * - Org-linked prospects: union of the org's own interests and every contact's interests for that org.\n * - Contact-only prospects: just the contact's interests.\n */\n interests?: Interest[];\n custom: {\n closed: boolean;\n unassigned: boolean;\n /**\n * Country of the lead, preferring contact country over org country when both are set.\n */\n country?: string;\n /**\n * Numeric ranks computed at index time so OpenSearch sorts ordinally, not alphabetically\n * (ADR-0021 §4, §5). The \"next\" cursor sorts priorityRank desc → scoreTierRank desc → id asc.\n */\n priorityRank: number;\n /** 0 = unscored (no tier yet). */\n scoreTierRank: number;\n /** User ids from `recommendedAccountManagers`, for the \"suitable for me\" filter (ADR §6). */\n recommendedAmIds?: string[];\n /**\n * Collapse key for grouping by main vehicle (minimizing context switch): the anchor's\n * vehicleId when the card carries vehicles, else the prospect id (a singleton group).\n * Mirrors the opportunities kanban's `custom.groupKey` (group-by-client) convention.\n */\n groupKey: string;\n };\n /** Task counters denormalized at index time, for kanban/list badges. */\n tasks?: {\n totalTasks: number;\n openTasks: number;\n /** Soonest due date among open tasks. */\n nextDueAt?: string;\n };\n};\n\n/************\n *\n * Claim\n */\n\n/**\n * Returned with HTTP 409 when a guarded claim finds the prospect already owned (a lost race). On\n * success the endpoint returns the claimed `DataRecord<Prospect>` with 200 instead (ADR-0021 §7).\n */\nexport type ProspectClaimConflict = {\n claimed: false;\n accountManager?: string;\n};\n\n/************\n *\n * Next cursor / play mode\n */\n\n/**\n * The \"next prospect\" cursor (ADR-0021 §5). Accepts the same filter body as the list search, so\n * \"next\" walks the rep's current view. Only the filter-defining fields are honored — sort, paging\n * size and `nextToken` are owned by the endpoint (fixed priority→tier sort, `cursor` below). `cursor`\n * is an opaque token embedding the sort position and a hash of the filters — it is rejected if the\n * filter set changed. `claim: true` is play mode: the next matching unassigned card is served and\n * claimed atomically (ADR §7).\n */\nexport type ProspectNextRequest = Pick<SearchRequest, 'fullText' | 'query' | 'geoFilters'> & {\n cursor?: string;\n claim?: boolean;\n /**\n * Serve cards grouped by main vehicle (minimizing context switch): all matching cards anchored\n * on the same vehicle come consecutively before \"next\" moves to the following vehicle group.\n */\n groupByVehicle?: boolean;\n};\n\nexport type ProspectNextResponse = {\n result?: SearchProspect;\n cursor?: string;\n meta: ReferenceData;\n};\n\n/** A main-vehicle group (ES collapse on `custom.groupKey`), shared by kanban and list. */\nexport type ProspectVehicleGroup = {\n representative: SearchProspect;\n items: SearchProspect[];\n};\n\n/** Flat list search, optionally collapsed by the card's main vehicle. */\nexport type ProspectsSearchRequest = SearchRequest & {\n /** Collapse on `custom.groupKey`: the page then streams GROUPS (offset-paged), not rows. */\n groupByVehicle?: boolean;\n};\n\nexport type ProspectsSearchResponse = PaginatedList<SearchProspect, ReferenceData> & {\n /**\n * Populated only when `groupByVehicle` is requested; `results` is then empty and\n * `totalCount` counts groups (collapse cardinality), not rows.\n */\n groups?: ProspectVehicleGroup[];\n};\n\n/************\n *\n * Kanban\n */\n\n/** A main-vehicle group inside a kanban column when `groupByVehicle` is on. */\nexport type KanbanProspectGroup = ProspectVehicleGroup;\n\nexport type ProspectsKanbanColumn = {\n status: string;\n results: SearchProspect[];\n /** Populated only when `groupByVehicle` is requested; `results` is then empty. */\n groups?: KanbanProspectGroup[];\n totalCount: number;\n};\n\nexport type MSearchProspectsKanbanColumn = {\n column: ProspectsKanbanColumn;\n nextToken?: string;\n};\n\nexport type KanbanProspectsSearchRequest = BaseSearchRequest & {\n nextTokens?: Record<string, string | undefined>;\n /** Collapse each column by the card's main vehicle (mirrors opportunities' group-by-client). */\n groupByVehicle?: boolean;\n /**\n * Per-column sort overrides, keyed by prospect status. Unlisted columns keep their defaults:\n * the nurture column sorts by the priority→tier \"next\" order, the rest newest-first.\n */\n statusSortBy?: Partial<Record<ProspectStatus, SortFilter[]>>;\n};\n\nexport type KanbanProspectsNextList = Omit<\n NextList<ProspectsKanbanColumn, ReferenceData>,\n 'nextToken'\n> & {\n nextTokens?: Record<string, string | undefined>;\n};\n\n/************\n *\n * Events\n */\n\ntype BaseProspectEvent = BaseEvent & {\n id: string;\n actionAt: string;\n tenantId: string;\n userId: string;\n};\n\nexport type ProspectCreatedEvent = BaseProspectEvent & {\n action: 'create';\n prospect: Prospect;\n previousProspect?: undefined;\n};\n\nexport type ProspectUpdatedEvent = BaseProspectEvent & {\n action: 'update';\n prospect: Prospect;\n previousProspect: Prospect;\n};\n\nexport type ProspectEvent = ProspectCreatedEvent | ProspectUpdatedEvent;\n"]}
1
+ {"version":3,"file":"prospects.js","sourceRoot":"/","sources":["types/prospects.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IAGjB,kCAAe,CAAA;IACf,gDAA6B,CAAA;IAC7B,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;IAC7B,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;AACnB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,UAAU;IACzB,cAAc,CAAC,OAAO;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,mBAAmB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,wBAAwB,GAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;IACrB,yDAAiC,CAAA;IACjC,+CAAuB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IAGb,qCAAiB,CAAA;AACnB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqC;IAC7D,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;CAC7B,CAAC;AASF,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;AACnB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAOD,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,gCAAW,CAAA;AACb,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAMD,MAAM,CAAC,MAAM,eAAe,GAAsC;IAChE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/B,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;CAC3B,CAAC;AAOF,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CAAC","sourcesContent":["import { Task } from '@bisondesk/commons-sdk/tasks';\nimport { MultiLangValue, NextList, PaginatedList } from '@bisondesk/commons-sdk/types';\nimport { Activity } from './activities.js';\nimport { Contact, Organization } from './crm.js';\nimport { Interest } from './interests.js';\nimport { BaseEvent } from './internal-events.js';\nimport { Offer } from './offers.js';\nimport { Opportunity } from './opportunities.js';\nimport { BaseSearchRequest, SearchRequest, SortFilter } from './search.js';\nimport { DataRecord, ReferenceData } from './utils.js';\n\nexport enum ProspectActions {\n CLOSE = 'close',\n REOPEN = 'reopen',\n ENGAGE = 'engage',\n // Claiming an unassigned prospect is open to any active sales rep — a deliberate widening of\n // ADR-0013's permission matrix (ADR-0021 §7).\n CLAIM = 'claim',\n SET_METADATA = 'set_metadata',\n SET_OBJECTIVES = 'set_objectives',\n SET_CUSTOMER = 'set_customer',\n ADD_ACTIVITY = 'add_activity',\n DELETE = 'delete',\n}\n\nexport enum ProspectStatus {\n NURTURE = 'nurture',\n ATTEMPTING = 'attempting',\n ENGAGED = 'engaged',\n CLOSED = 'closed',\n}\n\nexport const ProspectStatusOrder: ProspectStatus[] = [\n ProspectStatus.NURTURE,\n ProspectStatus.ATTEMPTING,\n ProspectStatus.ENGAGED,\n];\n\nexport const ProspectKanbanColumns = [...ProspectStatusOrder, ProspectStatus.CLOSED];\n\nexport const ProspectKanbanEndColumns: string[] = [ProspectStatus.CLOSED];\n\nexport enum ProspectClosedReason {\n CONVERTED = 'converted',\n DEFERRED = 'deferred',\n NO_REPLY = 'no_reply',\n NOT_INTERESTED = 'not_interested',\n AUTOMATIC = 'automatic',\n}\n\nexport enum ProspectPriority {\n LOW = 'low',\n NORMAL = 'normal',\n HIGH = 'high',\n // \"Call me\" fast lane (ADR-0021 §8): a manual URGENT prospect sorts ahead of every\n // engine-ranked card. Above NORMAL, priority dominates scoreTier in the \"next\" cursor.\n URGENT = 'urgent',\n}\n\n/**\n * Numeric rank for priority, computed at index time into `custom.priorityRank` so OpenSearch\n * can sort ordinally rather than alphabetically. Higher = more urgent.\n */\nexport const PRIORITY_RANK: Record<ProspectPriority, number> = {\n [ProspectPriority.LOW]: 1,\n [ProspectPriority.NORMAL]: 2,\n [ProspectPriority.HIGH]: 3,\n [ProspectPriority.URGENT]: 4,\n};\n\n/**\n * How a prospect entered the system (ADR-0021 §3). The engine's truncate-and-regenerate\n * delete predicate only ever touches `AUTO` cards, so `MANUAL`/`IMPORT` cards survive\n * regardless of status. `IMPORT` is reserved for the v2 import pipeline — nothing produces\n * it in v1, but it stays in the enum because the discriminator is part of the delete-predicate\n * safety contract.\n */\nexport enum ProspectSource {\n MANUAL = 'manual',\n AUTO = 'auto',\n IMPORT = 'import',\n}\n\n/**\n * Discrete ranking band for an auto prospect (ADR-0021 §4). Each generator maps its own raw\n * score into these bands via its own thresholds; the tier — not a raw number — is what the\n * engine persists and the \"next\" cursor sorts on.\n */\nexport enum ProspectScoreTier {\n COLD = 'cold',\n LUKEWARM = 'lukewarm',\n WARM = 'warm',\n HOT = 'hot',\n}\n\n/**\n * Numeric rank for a score tier, computed at index time into `custom.scoreTierRank`\n * (0 = unscored/no tier). Higher = warmer.\n */\nexport const SCORE_TIER_RANK: Record<ProspectScoreTier, number> = {\n [ProspectScoreTier.COLD]: 1,\n [ProspectScoreTier.LUKEWARM]: 2,\n [ProspectScoreTier.WARM]: 3,\n [ProspectScoreTier.HOT]: 4,\n};\n\n/**\n * Virtual sort field for search requests: \"importance\" is the compound priority → tier\n * ranking (ADR-0021 §5). The backend expands it server-side, so clients never spell out\n * the underlying fields.\n */\nexport const PROSPECT_IMPORTANCE_SORT_FIELD = 'prospect.importance';\n\n/** One line of the score breakdown recorded for explanation (raw score, thresholds, dampening). */\nexport type ProspectScoreDetail = {\n name: string;\n value: number | string;\n};\n\n/**\n * Denormalized vehicle display data carried on each candidate vehicle, so the UI can render the\n * anchor and runner-ups without a second fetch. Mirrors `InterestLead.vehicleData` (and extends it\n * with make/model/category/vin), keeping the two card surfaces consistent.\n */\nexport type ProspectVehicleData = {\n title: string;\n mainPictureUrl?: string;\n stockNumber?: string;\n\n category: string;\n bodywork?: string;\n makeName: string;\n modelName?: string;\n typeName?: string;\n\n used?: boolean; // Vehicle.condition.used — false/absent means new.\n damaged?: boolean;\n\n advertisingYear?: number;\n km?: number;\n emissionsClass?: string;\n emissionsSubClass?: string;\n cabinModel?: string;\n configuration?: string;\n vin?: string;\n\n // Notable boolean equipment, mirroring Vehicle.accessories (and superstructure.crane).\n features?: {\n adr?: boolean;\n jumbo?: boolean;\n crane?: boolean;\n hydraulicTipperKit?: boolean;\n lowDeck?: boolean;\n retarderIntarder?: boolean;\n };\n};\n\n/** A candidate anchor/runner-up vehicle, scored by the lead-engine matcher. */\nexport type ProspectVehicleCandidate = {\n vehicleId: string;\n /** Branch that holds this stock. The anchor's branch decides the card's branch (ADR-0021 §2). */\n branchId: string;\n score: number;\n vehicleData: ProspectVehicleData;\n};\n\n/** A recommended account manager with an affinity score and the reasons behind it. */\nexport type ProspectRecommendedAm = {\n userId: string;\n score: number;\n reasons: string[];\n};\n\nexport type ProspectObjective = {\n id: string;\n title: MultiLangValue;\n};\n\n/**\n * Inline identity for a card whose person/company matches no CRM record yet — the \"draft party\"\n * of ADR-0021 §9. Carries enough structure to materialise a Contact (first/last name, phone,\n * email) and/or an Organization (orgName, VAT, country) when the draft is converted\n * (`SET_CUSTOMER`, grown). Drafts enter through import or manual entry only — the engine never\n * produces them — and the nightly truncate never touches them.\n */\nexport type ProspectPartyDraft = {\n // contact identity\n firstName?: string;\n lastName?: string;\n phone?: string;\n email?: string;\n // organization identity\n orgName?: string;\n vatNumber?: string;\n countryCode?: string;\n /**\n * Client sector (Tier 1) and sub-industry (Tier 2), captured on the draft so they survive\n * promotion to an Organization. Same picklists and semantics as the Organization fields of the\n * same name (`ORG_INDUSTRY_PICKLIST_ID` / `SUB_INDUSTRY_PICKLIST_ID`).\n */\n industry?: string;\n subIndustry?: string;\n /**\n * The draft party's interests, embedded on the card — a draft has no CRM record to hang\n * interests on, so they ride the card until conversion copies them onto the linked\n * Contact/Organization (where the lead engine picks them up; embedded ones never feed it).\n */\n interests?: Interest[];\n};\n\ntype BaseProspect = {\n contactId?: string;\n organizationId?: string;\n /** Draft-party identity when the card is linked to no Contact/Organization yet (ADR §9). */\n partyDraft?: ProspectPartyDraft;\n branchId: string;\n accountManager?: string;\n priority: ProspectPriority;\n objectives: ProspectObjective[];\n};\n\nexport type NewProspect = BaseProspect & {\n id?: undefined;\n createdAt?: undefined;\n createdBy?: undefined;\n modifiedAt?: undefined;\n modifiedBy?: undefined;\n};\n\nexport type Prospect = BaseProspect & {\n id: string;\n\n status: ProspectStatus;\n\n // ── Engine-owned fields (ADR-0021). The manual write path treats these as read-only\n // (Joi.forbidden in the user schemas) so a human edit is never silently overwritten by the\n // next nightly run. `source` is always present on a persisted card; the rest exist only on\n // scored auto cards.\n source: ProspectSource;\n scoreTier?: ProspectScoreTier;\n scoreDetails?: ProspectScoreDetail[];\n /** Ordered by score desc; `vehicles[0]` is the anchor the rep opens the call with. */\n vehicles?: ProspectVehicleCandidate[];\n recommendedAccountManagers?: ProspectRecommendedAm[];\n\n attemptingAt?: string;\n attemptingBy?: string;\n engagedAt?: string;\n engagedBy?: string;\n closedAt?: string;\n closedBy?: string;\n closedReason?: ProspectClosedReason;\n\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n};\n\nexport type ProspectUpdate = {\n contactId?: string | null;\n organizationId?: string | null;\n partyDraft?: ProspectPartyDraft | null;\n branchId?: string;\n accountManager?: string | null;\n priority?: ProspectPriority;\n objectives?: ProspectObjective[];\n\n close?: boolean;\n closedReason?: ProspectClosedReason;\n reopen?: boolean;\n engage?: boolean;\n};\n\nexport type ProspectBff = {\n prospect: DataRecord<Prospect>;\n contact?: DataRecord<Contact>;\n org?: DataRecord<Organization>;\n tasks: DataRecord<Task>[];\n\n /** All interests in scope: the linked contact/org's, or the draft party's embedded ones. */\n interests: Interest[];\n /** Opportunities for the linked contact/org, deduped by id. */\n opportunities: Opportunity[];\n /** Offers for the linked contact/org, deduped by id, newest first. */\n offers: Offer[];\n /** The other prospect lines on the same contact/org (this one excluded), newest first. */\n relatedProspects: Prospect[];\n /** Most-recent interaction history (first page): the card's own + linked contact/org activities. */\n activities: DataRecord<Activity>[];\n /** Cursor for the next page of the merged activity history; absent when fully loaded. */\n activitiesNextToken?: string;\n};\n\n/************\n *\n * Search\n */\n\nexport type SearchProspect = {\n contact?: Contact;\n prospect: Prospect;\n org?: Organization;\n /**\n * Interests denormalized from the prospect's lead:\n * - Org-linked prospects: union of the org's own interests and every contact's interests for that org.\n * - Contact-only prospects: just the contact's interests.\n */\n interests?: Interest[];\n custom: {\n closed: boolean;\n unassigned: boolean;\n /**\n * Country of the lead, preferring contact country over org country when both are set.\n */\n country?: string;\n /**\n * Numeric ranks computed at index time so OpenSearch sorts ordinally, not alphabetically\n * (ADR-0021 §4, §5). The \"next\" cursor sorts priorityRank desc → scoreTierRank desc → id asc.\n */\n priorityRank: number;\n /** 0 = unscored (no tier yet). */\n scoreTierRank: number;\n /** User ids from `recommendedAccountManagers`, for the \"suitable for me\" filter (ADR §6). */\n recommendedAmIds?: string[];\n /**\n * Collapse key for grouping by main vehicle (minimizing context switch): the anchor's\n * vehicleId when the card carries vehicles, else the prospect id (a singleton group).\n * Mirrors the opportunities kanban's `custom.groupKey` (group-by-client) convention.\n */\n groupKey: string;\n };\n /** Task counters denormalized at index time, for kanban/list badges. */\n tasks?: {\n totalTasks: number;\n openTasks: number;\n /** Soonest due date among open tasks. */\n nextDueAt?: string;\n };\n};\n\n/************\n *\n * Claim\n */\n\n/**\n * Returned with HTTP 409 when a guarded claim finds the prospect already owned (a lost race). On\n * success the endpoint returns the claimed `DataRecord<Prospect>` with 200 instead (ADR-0021 §7).\n */\nexport type ProspectClaimConflict = {\n claimed: false;\n accountManager?: string;\n};\n\n/************\n *\n * Next cursor / play mode\n */\n\n/**\n * The \"next prospect\" cursor (ADR-0021 §5). Accepts the same filter body as the list search, so\n * \"next\" walks the rep's current view. Only the filter-defining fields are honored — sort, paging\n * size and `nextToken` are owned by the endpoint (fixed priority→tier sort, `cursor` below). `cursor`\n * is an opaque token embedding the sort position and a hash of the filters — it is rejected if the\n * filter set changed. `claim: true` is play mode: the next matching unassigned card is served and\n * claimed atomically (ADR §7).\n */\nexport type ProspectNextRequest = Pick<SearchRequest, 'fullText' | 'query' | 'geoFilters'> & {\n cursor?: string;\n claim?: boolean;\n /**\n * Serve cards grouped by main vehicle (minimizing context switch): all matching cards anchored\n * on the same vehicle come consecutively before \"next\" moves to the following vehicle group.\n */\n groupByVehicle?: boolean;\n};\n\nexport type ProspectNextResponse = {\n result?: SearchProspect;\n cursor?: string;\n meta: ReferenceData;\n};\n\n/** A main-vehicle group (ES collapse on `custom.groupKey`), shared by kanban and list. */\nexport type ProspectVehicleGroup = {\n representative: SearchProspect;\n items: SearchProspect[];\n};\n\n/** Flat list search, optionally collapsed by the card's main vehicle. */\nexport type ProspectsSearchRequest = SearchRequest & {\n /** Collapse on `custom.groupKey`: the page then streams GROUPS (offset-paged), not rows. */\n groupByVehicle?: boolean;\n};\n\nexport type ProspectsSearchResponse = PaginatedList<SearchProspect, ReferenceData> & {\n /**\n * Populated only when `groupByVehicle` is requested; `results` is then empty and\n * `totalCount` counts groups (collapse cardinality), not rows.\n */\n groups?: ProspectVehicleGroup[];\n};\n\n/************\n *\n * Kanban\n */\n\n/** A main-vehicle group inside a kanban column when `groupByVehicle` is on. */\nexport type KanbanProspectGroup = ProspectVehicleGroup;\n\nexport type ProspectsKanbanColumn = {\n status: string;\n results: SearchProspect[];\n /** Populated only when `groupByVehicle` is requested; `results` is then empty. */\n groups?: KanbanProspectGroup[];\n totalCount: number;\n};\n\nexport type MSearchProspectsKanbanColumn = {\n column: ProspectsKanbanColumn;\n nextToken?: string;\n};\n\nexport type KanbanProspectsSearchRequest = BaseSearchRequest & {\n nextTokens?: Record<string, string | undefined>;\n /** Collapse each column by the card's main vehicle (mirrors opportunities' group-by-client). */\n groupByVehicle?: boolean;\n /**\n * Per-column sort overrides, keyed by prospect status. Unlisted columns keep their defaults:\n * the nurture column sorts by the priority→tier \"next\" order, the rest newest-first.\n */\n statusSortBy?: Partial<Record<ProspectStatus, SortFilter[]>>;\n};\n\nexport type KanbanProspectsNextList = Omit<\n NextList<ProspectsKanbanColumn, ReferenceData>,\n 'nextToken'\n> & {\n nextTokens?: Record<string, string | undefined>;\n};\n\n/************\n *\n * Events\n */\n\ntype BaseProspectEvent = BaseEvent & {\n id: string;\n actionAt: string;\n tenantId: string;\n userId: string;\n};\n\nexport type ProspectCreatedEvent = BaseProspectEvent & {\n action: 'create';\n prospect: Prospect;\n previousProspect?: undefined;\n};\n\nexport type ProspectUpdatedEvent = BaseProspectEvent & {\n action: 'update';\n prospect: Prospect;\n previousProspect: Prospect;\n};\n\nexport type ProspectDeletedEvent = BaseProspectEvent & {\n action: 'delete';\n prospect?: undefined;\n /** Snapshot of the prospect as it was at the moment of deletion. */\n previousProspect: Prospect;\n};\n\nexport type ProspectEvent = ProspectCreatedEvent | ProspectUpdatedEvent | ProspectDeletedEvent;\n"]}
@@ -0,0 +1,45 @@
1
+ import { BaseEvent } from './internal-events.js';
2
+ import { SearchVehicle } from './vehicles.js';
3
+ export declare const VEHICLE_PURCHASE_PAYMENT_ALLOWED_NOTIFICATION_ORIGIN = "vehicle-purchase-payment-allowed-notification";
4
+ export type NewVehiclePurchasePayment = {
5
+ vehicleId: string;
6
+ amount: string;
7
+ description?: string;
8
+ paidAt?: string;
9
+ paidBy?: string;
10
+ };
11
+ export type VehiclePurchasePayment = NewVehiclePurchasePayment & {
12
+ id: string;
13
+ createdBy: string;
14
+ createdAt: string;
15
+ };
16
+ export type VehiclePurchasePaymentBff = {
17
+ payment: VehiclePurchasePayment;
18
+ vehicle: SearchVehicle;
19
+ };
20
+ export type VehiclePurchasePaymentCreateEvent = {
21
+ payment: VehiclePurchasePayment;
22
+ previousPayment?: undefined;
23
+ action: 'create';
24
+ actionAt: string;
25
+ userId: string;
26
+ tenantId: string;
27
+ };
28
+ export type VehiclePurchasePaymentUpdateEvent = {
29
+ payment: VehiclePurchasePayment;
30
+ previousPayment: VehiclePurchasePayment;
31
+ action: 'update';
32
+ actionAt: string;
33
+ userId: string;
34
+ tenantId: string;
35
+ };
36
+ export type VehiclePurchasePaymentDeleteEvent = {
37
+ payment?: undefined;
38
+ previousPayment: VehiclePurchasePayment;
39
+ action: 'delete';
40
+ actionAt: string;
41
+ userId: string;
42
+ tenantId: string;
43
+ };
44
+ export type VehiclePurchasePaymentEvent = BaseEvent & (VehiclePurchasePaymentCreateEvent | VehiclePurchasePaymentUpdateEvent | VehiclePurchasePaymentDeleteEvent);
45
+ //# sourceMappingURL=vehicle-purchase-payments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle-purchase-payments.d.ts","sourceRoot":"/","sources":["types/vehicle-purchase-payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,oDAAoD,kDAChB,CAAC;AAElD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAAG;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,sBAAsB,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,sBAAsB,CAAC;IAChC,eAAe,EAAE,sBAAsB,CAAC;IACxC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,sBAAsB,CAAC;IACxC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,SAAS,GACjD,CACI,iCAAiC,GACjC,iCAAiC,GACjC,iCAAiC,CACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const VEHICLE_PURCHASE_PAYMENT_ALLOWED_NOTIFICATION_ORIGIN = 'vehicle-purchase-payment-allowed-notification';
2
+ //# sourceMappingURL=vehicle-purchase-payments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle-purchase-payments.js","sourceRoot":"/","sources":["types/vehicle-purchase-payments.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oDAAoD,GAC/D,+CAA+C,CAAC","sourcesContent":["import { BaseEvent } from './internal-events.js';\nimport { SearchVehicle } from './vehicles.js';\n\nexport const VEHICLE_PURCHASE_PAYMENT_ALLOWED_NOTIFICATION_ORIGIN =\n 'vehicle-purchase-payment-allowed-notification';\n\nexport type NewVehiclePurchasePayment = {\n vehicleId: string;\n amount: string;\n description?: string;\n paidAt?: string;\n paidBy?: string;\n};\n\nexport type VehiclePurchasePayment = NewVehiclePurchasePayment & {\n id: string;\n createdBy: string;\n createdAt: string;\n};\n\nexport type VehiclePurchasePaymentBff = {\n payment: VehiclePurchasePayment;\n vehicle: SearchVehicle;\n};\n\nexport type VehiclePurchasePaymentCreateEvent = {\n payment: VehiclePurchasePayment;\n previousPayment?: undefined;\n action: 'create';\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type VehiclePurchasePaymentUpdateEvent = {\n payment: VehiclePurchasePayment;\n previousPayment: VehiclePurchasePayment;\n action: 'update';\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type VehiclePurchasePaymentDeleteEvent = {\n payment?: undefined;\n previousPayment: VehiclePurchasePayment;\n action: 'delete';\n actionAt: string;\n userId: string;\n tenantId: string;\n};\n\nexport type VehiclePurchasePaymentEvent = BaseEvent &\n (\n | VehiclePurchasePaymentCreateEvent\n | VehiclePurchasePaymentUpdateEvent\n | VehiclePurchasePaymentDeleteEvent\n );\n"]}
@@ -12,5 +12,7 @@ export declare const isBeforeReferenceOpportunityStatus: (input: CompareInput) =
12
12
  export declare const isOpportunityLost: (input: Opportunity) => boolean;
13
13
  export declare const getOpportunityReservedStatus: () => OpportunityStatus[];
14
14
  export declare const isOpportunityReserved: (input: Opportunity) => boolean;
15
+ export declare const isOpportunityReservingVehicle: (input: Opportunity) => boolean;
16
+ export declare const getOpportunityReservedVehicleId: (input: Opportunity | undefined) => string | undefined;
15
17
  export {};
16
18
  //# sourceMappingURL=opportunities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opportunities.d.ts","sourceRoot":"/","sources":["utils/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA0B,MAAM,2BAA2B,CAAC;AAEnG,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAcF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,KAC/B,iBAAiB,GAAG,SAMtB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,iBAAiB,KAAG,iBAAiB,GAAG,SAM7E,CAAC;AAEF,eAAO,MAAM,uCAAuC,GAAI,OAAO,YAAY,KAAG,OAI7E,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,OAAO,YAAY,KAAG,OAIvE,CAAC;AAEF,eAAO,MAAM,wCAAwC,GAAI,OAAO,YAAY,KAAG,OAI9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,OAAO,YAAY,KAAG,OAIxE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,KAAG,OAA+B,CAAC;AAEvF,eAAO,MAAM,4BAA4B,QAAO,iBAAiB,EAIhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,OAAO,WAAW,KAAG,OACJ,CAAC"}
1
+ {"version":3,"file":"opportunities.d.ts","sourceRoot":"/","sources":["utils/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA0B,MAAM,2BAA2B,CAAC;AAEnG,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAcF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,KAC/B,iBAAiB,GAAG,SAMtB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,iBAAiB,KAAG,iBAAiB,GAAG,SAM7E,CAAC;AAEF,eAAO,MAAM,uCAAuC,GAAI,OAAO,YAAY,KAAG,OAI7E,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,OAAO,YAAY,KAAG,OAIvE,CAAC;AAEF,eAAO,MAAM,wCAAwC,GAAI,OAAO,YAAY,KAAG,OAI9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,OAAO,YAAY,KAAG,OAIxE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,KAAG,OAA+B,CAAC;AAEvF,eAAO,MAAM,4BAA4B,QAAO,iBAAiB,EAIhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,OAAO,WAAW,KAAG,OACJ,CAAC;AASxD,eAAO,MAAM,6BAA6B,GAAI,OAAO,WAAW,KAAG,OACR,CAAC;AAO5D,eAAO,MAAM,+BAA+B,GAC1C,OAAO,WAAW,GAAG,SAAS,KAC7B,MAAM,GAAG,SACyE,CAAC"}
@@ -45,4 +45,6 @@ export const getOpportunityReservedStatus = () => [
45
45
  OpportunityStatus.DELIVERY,
46
46
  ];
47
47
  export const isOpportunityReserved = (input) => getOpportunityReservedStatus().includes(input.status);
48
+ export const isOpportunityReservingVehicle = (input) => isOpportunityReserved(input) && !isOpportunityLost(input);
49
+ export const getOpportunityReservedVehicleId = (input) => input != null && isOpportunityReservingVehicle(input) ? input.vehicleId : undefined;
48
50
  //# sourceMappingURL=opportunities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opportunities.js","sourceRoot":"/","sources":["utils/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","sourcesContent":["import { Opportunity, OpportunityStatus, OpportunityStatusOrder } from '../types/opportunities.js';\n\ntype CompareInput = {\n currentStatus: OpportunityStatus;\n referenceStatus: OpportunityStatus;\n};\n\nconst compareOpportunityStatus = (input: CompareInput) => {\n const { currentStatus, referenceStatus } = input;\n\n const currentStatusIdx = OpportunityStatusOrder.indexOf(currentStatus);\n const referenceStatusIdx = OpportunityStatusOrder.indexOf(referenceStatus);\n\n return {\n currentStatusIdx,\n referenceStatusIdx,\n };\n};\n\nexport const getPreviousStatus = (\n currentStatus: OpportunityStatus,\n): OpportunityStatus | undefined => {\n const currentIndex = OpportunityStatusOrder.indexOf(currentStatus);\n if (currentIndex === 0) {\n return;\n }\n return OpportunityStatusOrder[currentIndex - 1];\n};\n\nexport const getNextStatus = (status: OpportunityStatus): OpportunityStatus | undefined => {\n const statusIndex = OpportunityStatusOrder.indexOf(status);\n if (statusIndex >= OpportunityStatusOrder.length - 1) {\n return;\n }\n return OpportunityStatusOrder[statusIndex + 1];\n};\n\nexport const isSameOrAfterReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx >= referenceStatusIdx;\n};\n\nexport const isAfterReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx > referenceStatusIdx;\n};\n\nexport const isSameOrBeforeReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx <= referenceStatusIdx;\n};\n\nexport const isBeforeReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx < referenceStatusIdx;\n};\n\nexport const isOpportunityLost = (input: Opportunity): boolean => input.lostAt != null;\n\nexport const getOpportunityReservedStatus = (): OpportunityStatus[] => [\n OpportunityStatus.REVIEW,\n OpportunityStatus.PREPARATION,\n OpportunityStatus.DELIVERY,\n];\n\nexport const isOpportunityReserved = (input: Opportunity): boolean =>\n getOpportunityReservedStatus().includes(input.status);\n"]}
1
+ {"version":3,"file":"opportunities.js","sourceRoot":"/","sources":["utils/opportunities.ts"],"names":[],"mappings":"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","sourcesContent":["import { Opportunity, OpportunityStatus, OpportunityStatusOrder } from '../types/opportunities.js';\n\ntype CompareInput = {\n currentStatus: OpportunityStatus;\n referenceStatus: OpportunityStatus;\n};\n\nconst compareOpportunityStatus = (input: CompareInput) => {\n const { currentStatus, referenceStatus } = input;\n\n const currentStatusIdx = OpportunityStatusOrder.indexOf(currentStatus);\n const referenceStatusIdx = OpportunityStatusOrder.indexOf(referenceStatus);\n\n return {\n currentStatusIdx,\n referenceStatusIdx,\n };\n};\n\nexport const getPreviousStatus = (\n currentStatus: OpportunityStatus,\n): OpportunityStatus | undefined => {\n const currentIndex = OpportunityStatusOrder.indexOf(currentStatus);\n if (currentIndex === 0) {\n return;\n }\n return OpportunityStatusOrder[currentIndex - 1];\n};\n\nexport const getNextStatus = (status: OpportunityStatus): OpportunityStatus | undefined => {\n const statusIndex = OpportunityStatusOrder.indexOf(status);\n if (statusIndex >= OpportunityStatusOrder.length - 1) {\n return;\n }\n return OpportunityStatusOrder[statusIndex + 1];\n};\n\nexport const isSameOrAfterReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx >= referenceStatusIdx;\n};\n\nexport const isAfterReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx > referenceStatusIdx;\n};\n\nexport const isSameOrBeforeReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx <= referenceStatusIdx;\n};\n\nexport const isBeforeReferenceOpportunityStatus = (input: CompareInput): boolean => {\n const { currentStatusIdx, referenceStatusIdx } = compareOpportunityStatus(input);\n\n return currentStatusIdx < referenceStatusIdx;\n};\n\nexport const isOpportunityLost = (input: Opportunity): boolean => input.lostAt != null;\n\nexport const getOpportunityReservedStatus = (): OpportunityStatus[] => [\n OpportunityStatus.REVIEW,\n OpportunityStatus.PREPARATION,\n OpportunityStatus.DELIVERY,\n];\n\nexport const isOpportunityReserved = (input: Opportunity): boolean =>\n getOpportunityReservedStatus().includes(input.status);\n\n/**\n * Whether the opportunity currently reserves the vehicle attached to it: reserved-stage\n * (REVIEW onwards) and not lost — independent of whether a reservation row exists. Query-side\n * twin: `getOpportunityReservingVehicle` in core's opportunities/read.ts. Availability\n * propagation, warnings and guards must share this one definition rather than re-composing\n * the two primitives.\n */\nexport const isOpportunityReservingVehicle = (input: Opportunity): boolean =>\n isOpportunityReserved(input) && !isOpportunityLost(input);\n\n/**\n * The vehicle the opportunity currently reserves, if any — undefined outside the reserved\n * range, when lost, without a vehicle, or for a missing opportunity. Compare this value\n * before/after an update to detect a vehicle being taken or freed.\n */\nexport const getOpportunityReservedVehicleId = (\n input: Opportunity | undefined,\n): string | undefined =>\n input != null && isOpportunityReservingVehicle(input) ? input.vehicleId : undefined;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bisondesk/core-sdk",
3
- "version": "1.0.621",
3
+ "version": "1.0.623",
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"}
@@ -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,41 @@
1
+ import { OpportunityType } from '../constants.js';
2
+ import { OpportunityStatus } from './opportunities.js';
3
+
4
+ /**
5
+ * One downstream tenant on the cross-tenant copy chain of an opportunity's vehicle,
6
+ * with the aggregate state of that tenant's own sale payments. Only hops whose copy
7
+ * has an active (not lost, reserved-stage) sale opportunity are returned; individual
8
+ * payment entries never leave their tenant (ADR-0024).
9
+ */
10
+ export type IntercompanyPaymentHop = {
11
+ tenantId: string;
12
+ tenantName: string;
13
+ /** Deep link to the hop opportunity on the target tenant's own subdomain. */
14
+ opportunityUrl: string;
15
+ /**
16
+ * Currency of the amounts: the hop opportunity's quote currency. A reserved-stage
17
+ * opportunity always carries a quote; hops missing one (malformed) are skipped.
18
+ */
19
+ currency: string;
20
+ vehicle: {
21
+ id: string;
22
+ stockNumber: string;
23
+ };
24
+ sale: {
25
+ opportunityId: string;
26
+ status: OpportunityStatus;
27
+ /** Lets the client mirror the hop's own label (total payment vs total before delivery). */
28
+ type: OpportunityType;
29
+ };
30
+ /**
31
+ * Exactly the figure the hop's own payments section shows (the accepted quote's
32
+ * total payment before delivery). Absent until that hop's quote is manager-accepted.
33
+ */
34
+ expectedTotal?: string;
35
+ /** Sum of the hop opportunity's non-deleted payment amounts. */
36
+ paid: string;
37
+ };
38
+
39
+ export type IntercompanyPaymentsResponse = {
40
+ hops: IntercompanyPaymentHop[];
41
+ };
@@ -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"}