@voyantjs/sellability 0.81.11 → 0.81.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAU5B,OAAO,KAAK,EACV,gCAAgC,EAChC,2BAA2B,EAC3B,kCAAkC,EAClC,mCAAmC,EACnC,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,qCAAqC,EACrC,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,2BAA2B,EAC3B,kCAAkC,EAClC,mCAAmC,EACnC,6BAA6B,EAC9B,MAAM,iBAAiB,CAAA;AAIxB,KAAK,4BAA4B,GAAG;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAAA;CACtD,CAAA;AAED,KAAK,gCAAgC,GAAG;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAClF,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACjF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAA;AAC9F,KAAK,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AAC7F,KAAK,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AAC7F,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC9E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AACxF,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACvF,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACvF,KAAK,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAA;AAC5F,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC3F,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAE3F,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAA;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAuSD,eAAO,MAAM,kBAAkB;uBACJ,kBAAkB,SAAS,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAiqC/D,MAAM;kCACL,MAAM;mCACL,MAAM;iCACR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAv4BC,kBAAkB,SAAS,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAo4BjE,MAAM;sCACL,MAAM;uCACL,MAAM;qCACR,MAAM;;;;;;;;;;;;;;;;;;sBAz3BD,kBAAkB,SAAS,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;wBAuBrD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;0BAQ5B,kBAAkB,SAAS,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAwBhE,kBAAkB,SAAS,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;sBAuBpD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;qBAQ/B,kBAAkB,QAAQ,4BAA4B;;;;;;;;;;;;;;;;;;qBAItD,kBAAkB,MAAM,MAAM,QAAQ,4BAA4B;;;;;;;;;;;;;;;;;;qBAQlE,kBAAkB,MAAM,MAAM;;;0BAOzB,kBAAkB,SAAS,gCAAgC;;;;;;;;;;;;;;;;4BAqBzD,kBAAkB,MAAM,MAAM;;;;;;;;;;;2BAQ/B,kBAAkB,QAAQ,kCAAkC;;;;;;;;;;;2BAKnF,kBAAkB,MAClB,MAAM,QACJ,kCAAkC;;;;;;;;;;;2BASb,kBAAkB,MAAM,MAAM;;;6BAO5B,kBAAkB,SAAS,wBAAwB;;;;;;;;;;;;;;;;;+BAmBjD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;8BAQ/B,kBAAkB,QAAQ,0BAA0B;;;;;;;;;;;;8BAY9E,kBAAkB,MAClB,MAAM,QACJ,0BAA0B;;;;;;;;;;;;8BAcF,kBAAkB,MAAM,MAAM;;;kCAO1B,kBAAkB,SAAS,6BAA6B;;;;;;;;;;;;;;;;;oCAmBtD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;mCAQ/B,kBAAkB,QAAQ,+BAA+B;;;;;;;;;;;;mCAYxF,kBAAkB,MAClB,MAAM,QACJ,+BAA+B;;;;;;;;;;;;mCAcF,kBAAkB,MAAM,MAAM;;;yBAOxC,kBAAkB,SAAS,+BAA+B;;;;;;;;;;;;;;;;2BAqBxD,kBAAkB,MAAM,MAAM;;;;;;;;;;;0BAQ/B,kBAAkB,QAAQ,iCAAiC;;;;;;;;;;;0BAKjF,kBAAkB,MAClB,MAAM,QACJ,iCAAiC;;;;;;;;;;;0BASb,kBAAkB,MAAM,MAAM;;;gBAOxC,kBAAkB,SAAS,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAyiBjD,MAAM;kCACL,MAAM;mCACL,MAAM;iCACR,MAAM;;;;;;;;;;;;;;;;;CAyE1B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { availabilitySlots } from "@voyantjs/availability/schema";
2
2
  import { channelInventoryAllotments, channelInventoryAllotmentTargets, channelInventoryReleaseRules, channels, } from "@voyantjs/distribution/schema";
3
3
  import { exchangeRates, fxRateSets, marketChannelRules, marketPriceCatalogs, marketProductRules, markets, } from "@voyantjs/markets/schema";
4
- import { optionPriceRules, optionStartTimeRules, optionUnitPriceRules, optionUnitTiers, pickupPriceRules, priceCatalogs, priceSchedules, pricingCategories, } from "@voyantjs/pricing/schema";
4
+ import { departurePriceOverrides, optionPriceRules, optionStartTimeRules, optionUnitPriceRules, optionUnitTiers, pickupPriceRules, priceCatalogs, priceSchedules, pricingCategories, } from "@voyantjs/pricing/schema";
5
5
  import { optionUnits, productOptions, products } from "@voyantjs/products/schema";
6
6
  import { transactionsService } from "@voyantjs/transactions";
7
7
  import { and, asc, desc, eq, inArray, sql } from "drizzle-orm";
@@ -41,10 +41,10 @@ function applyAdjustment(total, adjustment) {
41
41
  }
42
42
  return total;
43
43
  }
44
- function computeUnitAmounts(request, details, unitRule, tier) {
44
+ function computeUnitAmounts(request, details, unitRule, tier, override) {
45
45
  const pricingMode = unitRule?.pricingMode ?? "per_unit";
46
- const baseSell = tier?.sellAmountCents ?? unitRule?.sellAmountCents ?? 0;
47
- const baseCost = tier?.costAmountCents ?? unitRule?.costAmountCents ?? 0;
46
+ const baseSell = override?.sellAmountCents ?? tier?.sellAmountCents ?? unitRule?.sellAmountCents ?? 0;
47
+ const baseCost = override?.costAmountCents ?? tier?.costAmountCents ?? unitRule?.costAmountCents ?? 0;
48
48
  if (pricingMode === "included" || pricingMode === "free") {
49
49
  return {
50
50
  requestRef: request.requestRef ?? null,
@@ -837,7 +837,7 @@ export const sellabilityService = {
837
837
  ...new Set(slots.flatMap((slot) => (slot.startTimeId ? [slot.startTimeId] : []))),
838
838
  ];
839
839
  const slotIds = slots.map((slot) => slot.id);
840
- const [marketRow, channelRow, marketProductRuleRows, marketChannelRuleRows, marketCatalogRows, catalogRows, optionPriceRuleRows, optionScheduleRows, unitPriceRuleRows, unitTierRows, unitRows, pricingCategoryRows, startTimeRuleRows, pickupRuleRows, allotmentRows, allotmentTargetRows, releaseRuleRows, exchangeRateRow,] = await Promise.all([
840
+ const [marketRow, channelRow, marketProductRuleRows, marketChannelRuleRows, marketCatalogRows, catalogRows, optionPriceRuleRows, optionScheduleRows, unitPriceRuleRows, unitTierRows, unitRows, pricingCategoryRows, startTimeRuleRows, pickupRuleRows, allotmentRows, allotmentTargetRows, releaseRuleRows, exchangeRateRow, departureOverrideRows,] = await Promise.all([
841
841
  query.marketId
842
842
  ? db
843
843
  .select()
@@ -938,6 +938,18 @@ export const sellabilityService = {
938
938
  .where(eq(exchangeRates.quoteCurrency, query.currencyCode))
939
939
  .orderBy(desc(fxRateSets.effectiveAt))
940
940
  : Promise.resolve([]),
941
+ slotIds.length
942
+ ? db
943
+ .select({
944
+ departureId: departurePriceOverrides.departureId,
945
+ priceCatalogId: departurePriceOverrides.priceCatalogId,
946
+ optionUnitId: departurePriceOverrides.optionUnitId,
947
+ sellAmountCents: departurePriceOverrides.sellAmountCents,
948
+ costAmountCents: departurePriceOverrides.costAmountCents,
949
+ })
950
+ .from(departurePriceOverrides)
951
+ .where(and(inArray(departurePriceOverrides.departureId, slotIds), eq(departurePriceOverrides.active, true)))
952
+ : Promise.resolve([]),
941
953
  ]);
942
954
  const optionMap = new Map(optionRows.map((row) => [row.optionId, row]));
943
955
  const scheduleMap = new Map(optionScheduleRows.map((row) => [row.id, row]));
@@ -945,6 +957,10 @@ export const sellabilityService = {
945
957
  const catalogMap = new Map(catalogRows.map((row) => [row.id, row]));
946
958
  const unitMap = new Map(unitRows.map((row) => [row.id, row]));
947
959
  const pricingCategoryMap = new Map(pricingCategoryRows.map((row) => [row.id, row]));
960
+ const departureOverrideMap = new Map(departureOverrideRows.map((row) => [
961
+ `${row.departureId}:${row.priceCatalogId}:${row.optionUnitId}`,
962
+ row,
963
+ ]));
948
964
  const candidates = [];
949
965
  for (const slot of slots) {
950
966
  if (!slot.optionId)
@@ -1069,13 +1085,17 @@ export const sellabilityService = {
1069
1085
  : null;
1070
1086
  if (unitRule?.pricingMode === "on_request")
1071
1087
  onRequest = true;
1088
+ const overrideUnitId = request.unitId ?? unitRule?.unitId ?? null;
1089
+ const override = overrideUnitId == null
1090
+ ? null
1091
+ : (departureOverrideMap.get(`${slot.id}:${chosenRule.priceCatalogId}:${overrideUnitId}`) ?? null);
1072
1092
  const item = computeUnitAmounts(request, {
1073
1093
  unitName: request.unitId ? (unitMap.get(request.unitId)?.name ?? null) : null,
1074
1094
  unitType: request.unitId ? (unitMap.get(request.unitId)?.unitType ?? null) : null,
1075
1095
  pricingCategoryName: request.pricingCategoryId
1076
1096
  ? (pricingCategoryMap.get(request.pricingCategoryId)?.name ?? null)
1077
1097
  : null,
1078
- }, unitRule, tier);
1098
+ }, unitRule, tier, override);
1079
1099
  breakdown.push(item);
1080
1100
  components.push({
1081
1101
  kind: "unit",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/sellability",
3
- "version": "0.81.11",
3
+ "version": "0.81.13",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -29,15 +29,15 @@
29
29
  "drizzle-orm": "^0.45.2",
30
30
  "hono": "^4.12.10",
31
31
  "zod": "^4.3.6",
32
- "@voyantjs/availability": "0.81.11",
33
- "@voyantjs/core": "0.81.11",
34
- "@voyantjs/db": "0.81.11",
35
- "@voyantjs/distribution": "0.81.11",
36
- "@voyantjs/hono": "0.81.11",
37
- "@voyantjs/markets": "0.81.11",
38
- "@voyantjs/pricing": "0.81.11",
39
- "@voyantjs/products": "0.81.11",
40
- "@voyantjs/transactions": "0.81.11"
32
+ "@voyantjs/availability": "0.81.13",
33
+ "@voyantjs/core": "0.81.13",
34
+ "@voyantjs/db": "0.81.13",
35
+ "@voyantjs/distribution": "0.81.13",
36
+ "@voyantjs/hono": "0.81.13",
37
+ "@voyantjs/markets": "0.81.13",
38
+ "@voyantjs/pricing": "0.81.13",
39
+ "@voyantjs/products": "0.81.13",
40
+ "@voyantjs/transactions": "0.81.13"
41
41
  },
42
42
  "devDependencies": {
43
43
  "typescript": "^6.0.2",