@voyantjs/products 0.28.0 → 0.28.3

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.
@@ -6,9 +6,9 @@ export async function getProductAggregates(db, options = {}) {
6
6
  const toDate = options.to ? new Date(options.to) : undefined;
7
7
  const rangeConditions = [];
8
8
  if (fromDate)
9
- rangeConditions.push(sql `${products.createdAt} >= ${fromDate}`);
9
+ rangeConditions.push(sql `${products.createdAt} >= ${fromDate.toISOString()}`);
10
10
  if (toDate)
11
- rangeConditions.push(sql `${products.createdAt} < ${toDate}`);
11
+ rangeConditions.push(sql `${products.createdAt} < ${toDate.toISOString()}`);
12
12
  const rangeWhere = rangeConditions.length ? and(...rangeConditions) : undefined;
13
13
  const [totalRow] = await db
14
14
  .select({ count: sql `count(*)::int` })
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAgC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EACV,0BAA0B,EAC1B,qCAAqC,EACrC,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,kCAAkC,EAClC,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,EACjC,oCAAoC,EACpC,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,oCAAoC,EACpC,mBAAmB,EACnB,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,oCAAoC,EACpC,mBAAmB,EACnB,yBAAyB,EACzB,oCAAoC,EACpC,uCAAuC,EACvC,gCAAgC,EAChC,8BAA8B,EAC9B,oCAAoC,EACpC,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,uCAAuC,EACvC,yBAAyB,EACzB,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,uCAAuC,EACvC,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,kCAAkC,EAClC,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,EACjC,oCAAoC,EACpC,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,mBAAmB,EACnB,sBAAsB,EACtB,gCAAgC,EAChC,8BAA8B,EAC9B,uBAAuB,EACvB,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,iBAAiB,CAAA;AAExB,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAC9D,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAC1E,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACzE,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACzE,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACpE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACpF,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACnF,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAA;AAChG,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,KAAK,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC1F,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAA;AAChG,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,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,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAA;AAChG,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,KAAK,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC/F,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,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAC1F,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACzF,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAC5E,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACpE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,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,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AACtE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,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;AAC3F,KAAK,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AACpF,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACrD,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACrD,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC7D,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AACtE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,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,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACpE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AACxE,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACvE,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACvE,KAAK,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAuIzE,eAAO,MAAM,eAAe;;qBAGH,kBAAkB,SAAS,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAuEzC,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAK/B,kBAAkB,QAAQ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAS5C,kBAAkB,MAAM,MAAM,QAAQ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUxD,kBAAkB,MAAM,MAAM;;;+BASrB,kBAAkB,SAAS,iCAAiC;;;;;;;;;;;;;;;;iCAgC1D,kBAAkB,MAAM,MAAM;;;;;;;;;;;gCAW3D,kBAAkB,aACX,MAAM,QACX,mCAAmC;;;;;;;;;;;gCAkCrC,kBAAkB,MAClB,MAAM,QACJ,mCAAmC;;;;;;;;;;;gCAiCT,kBAAkB,MAAM,MAAM;;;2BASnC,kBAAkB,SAAS,6BAA6B;;;;;;;;;;;;;;;;;6BAgCtD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;4BAWvD,kBAAkB,aACX,MAAM,QACX,+BAA+B;;;;;;;;;;;;4BAoBjC,kBAAkB,MAClB,MAAM,QACJ,+BAA+B;;;;;;;;;;;;4BAWT,kBAAkB,MAAM,MAAM;;;+BAS3B,kBAAkB,SAAS,iCAAiC;;;;;;;;;;;;;;;iCAoC1D,kBAAkB,MAAM,MAAM;;;;;;;;;;gCAW3D,kBAAkB,aACX,MAAM,QACX,mCAAmC;;;;;;;;;;gCAoBrC,kBAAkB,MAClB,MAAM,QACJ,mCAAmC;;;;;;;;;;gCAWT,kBAAkB,MAAM,MAAM;;;yBASrC,kBAAkB,SAAS,0BAA0B;;;;;;;;;;;;;;0BAoCpD,kBAAkB,MAAM,MAAM;;;;;;;;;yBAWpD,kBAAkB,aACX,MAAM,QACX,4BAA4B;;;;;;;;;yBAuBT,kBAAkB,MAAM,MAAM,QAAQ,4BAA4B;;;;;;;;;yBAUlE,kBAAkB,MAAM,MAAM;;;4BAS3B,kBAAkB,SAAS,8BAA8B;;;;;;;;;;;;;8BAgCvD,kBAAkB,MAAM,MAAM;;;;;;;;6BAWxD,kBAAkB,aACX,MAAM,QACX,gCAAgC;;;;;;;;6BA8BlC,kBAAkB,MAClB,MAAM,QACJ,gCAAgC;;;;;;;;6BA4BT,kBAAkB,MAAM,MAAM;;;qBAStC,kBAAkB,SAAS,uBAAuB;;;;;;;;;;;;;;;uBAgChD,kBAAkB,MAAM,MAAM;;;;;;;;;;sBAK/B,kBAAkB,aAAa,MAAM,QAAQ,yBAAyB;;;;;;;;;;sBActE,kBAAkB,MAAM,MAAM,QAAQ,yBAAyB;;;;;;;;;;sBAU/D,kBAAkB,MAAM,MAAM;;;iBASnC,kBAAkB,SAAS,mBAAmB;;;;;;;;;;;;;;mBA4B5C,kBAAkB,MAAM,MAAM;;;;;;;;;kBAK/B,kBAAkB,aAAa,MAAM,QAAQ,qBAAqB;;;;;;;;;kBAclE,kBAAkB,MAAM,MAAM,QAAQ,qBAAqB;;;;;;;;;kBAU3D,kBAAkB,MAAM,MAAM;;;sBAS1B,kBAAkB,SAAS,wBAAwB;;;;;;;;;;;;;;;;;;;;;;wBAgCjD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;uBAUlD,kBAAkB,aACX,MAAM,QACX,0BAA0B;;;;;;;;;;;;;;;;;uBAeT,kBAAkB,MAAM,MAAM,QAAQ,0BAA0B;;;;;;;;;;;;;;;;;uBAUhE,kBAAkB,MAAM,MAAM;;;yBAS5B,kBAAkB,SAAS,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqF7C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;0BAkB/B,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;;0BAKhD,kBAAkB,MAAM,MAAM,QAAQ,sBAAsB;;;;;;;;;;;;0BAU5D,kBAAkB,MAAM,MAAM;;;oCAUpD,kBAAkB,SACf,+BAA+B;;;;;;;;;;;;;;;;qCAkClC,kBAAkB,iBACP,MAAM,QACf,iCAAiC;;;;;;;;;;;qCAwCnC,kBAAkB,MAClB,MAAM,QACJ,iCAAiC;;;;;;;;;;;qCAWF,kBAAkB,MAAM,MAAM;;;gCASnC,kBAAkB,SAAS,2BAA2B;;;;;;;;;;;;;;;iCA2ClF,kBAAkB,aACX,MAAM,SACV;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;iCAqDnB,kBAAkB,aAAa,MAAM,iBAAiB,MAAM;;;;oBAiBzE,kBAAkB,SAAS,sBAAsB;;;;;;;;;;;;;;;;;;;sBAgC/C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;qBAK/B,kBAAkB,aAAa,MAAM,QAAQ,wBAAwB;;;;;;;;;;;;;;qBA0BrE,kBAAkB,MAAM,MAAM,QAAQ,wBAAwB;;;;;;;;;;;;;;qBA2B9D,kBAAkB,MAAM,MAAM;;;kBASjC,kBAAkB,SAAS,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;oBAgC5C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;mBAK/B,kBAAkB,YAAY,MAAM,QAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;mBAmBjE,kBAAkB,MAAM,MAAM,QAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;mBAU3D,kBAAkB,MAAM,MAAM;;;gCASjB,kBAAkB,SAAS,2BAA2B;;;;;;;;;;;;;;;;;;kCAgCpD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;iCAW5D,kBAAkB,aACX,MAAM,QACX,6BAA6B;;;;;;;;;;;;;iCAqB/B,kBAAkB,MAClB,MAAM,QACJ,6BAA6B;;;;;;;;;;;;;iCAWF,kBAAkB,MAAM,MAAM;;;+BAShC,kBAAkB,SAAS,iCAAiC;;;;;;;;;;;;;;;iCAmC1D,kBAAkB,MAAM,MAAM;;;;;;;;;;gCAW3D,kBAAkB,YACZ,MAAM,QACV,mCAAmC;;;;;;;;;;gCAqBrC,kBAAkB,MAClB,MAAM,QACJ,mCAAmC;;;;;;;;;;gCAWT,kBAAkB,MAAM,MAAM;;;6BASjC,kBAAkB,SAAS,8BAA8B;;;;;;;;;;;;;;;+BAgCvD,kBAAkB,MAAM,MAAM;;;;;;;;;;8BAWzD,kBAAkB,UACd,MAAM,QACR,gCAAgC;;;;;;;;;;8BAqBlC,kBAAkB,MAClB,MAAM,QACJ,gCAAgC;;;;;;;;;;8BAWR,kBAAkB,MAAM,MAAM;;;wBAS1C,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAQ/B,kBAAkB,aAAa,MAAM,QAAQ,oBAAoB;;;;;;;;;wBAkCjE,kBAAkB,eAAe,MAAM,QAAQ,oBAAoB;;;;;;;;;wBAmDnE,kBAAkB,eAAe,MAAM;;;2BAuB3D,kBAAkB,eACT,MAAM,YACT;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;iBA+HV,kBAAkB,aAAa,MAAM;;;;;;;;;;0BAKlC,kBAAkB,eAAe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQzC,kBAAkB,aAAa,MAAM,QAAQ,cAAc;;;;;;;;;;2BAMzE,kBAAkB,aACX,MAAM,eACJ,MAAM,QACb,cAAc;;;;;;;;;;kBAeF,kBAAkB,SAAS,MAAM,QAAQ,cAAc;;;;;;;;;;kBAUvD,kBAAkB,SAAS,MAAM;;;wBASjC,kBAAkB,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAS/C,kBAAkB,aACX,MAAM,SACV,MAAM,QACP,qBAAqB;;;;;;;;;;;;;;;yBAmBvB,kBAAkB,aACX,MAAM,aACN,MAAM,QACX,qBAAqB;;;;;;;;;;;;;;;yBAgBF,kBAAkB,aAAa,MAAM,aAAa,MAAM;;;qBAclE,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAShD,kBAAkB,aACX,MAAM,UACT,MAAM,QACR,kBAAkB;;;;;;;;;kBAqFZ,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAS7C,kBAAkB,aACX,MAAM,UACT,MAAM,QACR,sBAAsB;;;;;;;oBAwBR,kBAAkB,aAAa,MAAM;;;;yBAkBhC,kBAAkB,SAAS,oBAAoB;;;;;;;;;;;;;;;;2BAiC7C,kBAAkB,MAAM,MAAM;;;;;;;;;;;0BAK/B,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;0BAKhD,kBAAkB,MAAM,MAAM,QAAQ,sBAAsB;;;;;;;;;;;0BAU5D,kBAAkB,MAAM,MAAM;;;8BAa1B,kBAAkB,SAAS,wBAAwB;;;;;;;;;;;;;;;;;;+BAqClD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;8BAS/B,kBAAkB,QAAQ,0BAA0B;;;;;;;;;;;;;8BAM9E,kBAAkB,MAClB,MAAM,QACJ,0BAA0B;;;;;;;;;;;;;8BAWF,kBAAkB,MAAM,MAAM;;;wBAapC,kBAAkB,SAAS,mBAAmB;;;;;;;;;;;0BA6B5C,kBAAkB,MAAM,MAAM;;;;;;yBAK/B,kBAAkB,QAAQ,qBAAqB;;;;;;yBAK/C,kBAAkB,MAAM,MAAM,QAAQ,qBAAqB;;;;;;yBAU3D,kBAAkB,MAAM,MAAM;;;6BAcnD,kBAAkB,aACX,MAAM,cACL,MAAM;;;;;;;kCAYgB,kBAAkB,aAAa,MAAM,cAAc,MAAM;;;+BAc5D,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;sBAe9C,kBAAkB,aAAa,MAAM,SAAS,MAAM;;;;;yBAUjD,kBAAkB,aAAa,MAAM,SAAS,MAAM;;;yBASpD,kBAAkB,aAAa,MAAM;;;;;;kBAe5C,kBAAkB,aAAa,MAAM,SAAS,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;8BA6CjF,kBAAkB,aACX,MAAM,SACV,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;qBAyCP,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;oBAK/B,kBAAkB,aAAa,MAAM,QAAQ,uBAAuB;;;;;;;;;;;;;;;;;;;oBAsDpE,kBAAkB,MAAM,MAAM,QAAQ,uBAAuB;;;;;;;;;;;;;;;;;;;oBAiC7D,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;sBAO9C,kBAAkB,aACX,MAAM,WACR,MAAM,UACP,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;qBAwBA,kBAAkB,QAAQ,wBAAwB;;;oBAgBnD,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;sBAsBnC,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;uBAoBvD,kBAAkB,aACX,MAAM,QACX,0BAA0B;;;;;;;;;;;;;;;;;;;uBA+BT,kBAAkB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;2BAmCjC,kBAAkB,aAAa,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;;8BAsCtD,kBAAkB,aAAa,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;;CAgD1F,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,6 +1,8 @@
1
- import { and, asc, desc, eq, ilike, inArray, or, sql } from "drizzle-orm";
1
+ import { RequestValidationError } from "@voyantjs/hono";
2
+ import { and, asc, desc, eq, gte, ilike, inArray, lte, or, sql } from "drizzle-orm";
2
3
  import { destinations, destinationTranslations, optionUnits, optionUnitTranslations, productActivationSettings, productCapabilities, productCategories, productCategoryProducts, productDayServices, productDays, productDeliveryFormats, productDestinations, productFaqs, productFeatures, productItineraries, productLocations, productMedia, productNotes, productOptions, productOptionTranslations, products, productTagProducts, productTags, productTicketSettings, productTranslations, productTypes, productVersions, productVisibilitySettings, } from "./schema.js";
3
4
  import { getProductAggregates } from "./service-aggregates.js";
5
+ import { validateMergedOptionUnit } from "./validation-core.js";
4
6
  async function recalculateProductCost(db, productId) {
5
7
  const [result] = await db
6
8
  .select({
@@ -144,7 +146,44 @@ export const productsService = {
144
146
  const term = `%${query.search}%`;
145
147
  conditions.push(or(ilike(products.name, term), ilike(products.description, term)));
146
148
  }
149
+ if (query.dateFrom) {
150
+ conditions.push(gte(products.startDate, query.dateFrom));
151
+ }
152
+ if (query.dateTo) {
153
+ conditions.push(lte(products.startDate, query.dateTo));
154
+ }
155
+ if (query.paxMin !== undefined) {
156
+ conditions.push(gte(products.pax, query.paxMin));
157
+ }
158
+ if (query.paxMax !== undefined) {
159
+ conditions.push(lte(products.pax, query.paxMax));
160
+ }
161
+ if (query.sellAmountMin !== undefined) {
162
+ conditions.push(gte(products.sellAmountCents, query.sellAmountMin));
163
+ }
164
+ if (query.sellAmountMax !== undefined) {
165
+ conditions.push(lte(products.sellAmountCents, query.sellAmountMax));
166
+ }
147
167
  const where = conditions.length > 0 ? and(...conditions) : undefined;
168
+ const sortColumn = (() => {
169
+ switch (query.sortBy) {
170
+ case "name":
171
+ return products.name;
172
+ case "status":
173
+ return products.status;
174
+ case "sellAmount":
175
+ return products.sellAmountCents;
176
+ case "pax":
177
+ return products.pax;
178
+ case "startDate":
179
+ return products.startDate;
180
+ case "endDate":
181
+ return products.endDate;
182
+ default:
183
+ return products.createdAt;
184
+ }
185
+ })();
186
+ const sortFn = query.sortDir === "asc" ? asc : desc;
148
187
  const [rows, countResult] = await Promise.all([
149
188
  db
150
189
  .select()
@@ -152,7 +191,7 @@ export const productsService = {
152
191
  .where(where)
153
192
  .limit(query.limit)
154
193
  .offset(query.offset)
155
- .orderBy(products.createdAt),
194
+ .orderBy(sortFn(sortColumn), desc(products.createdAt)),
156
195
  db.select({ count: sql `count(*)::int` }).from(products).where(where),
157
196
  ]);
158
197
  return {
@@ -1111,6 +1150,30 @@ export const productsService = {
1111
1150
  return row;
1112
1151
  },
1113
1152
  async updateUnit(db, id, data) {
1153
+ const [existing] = await db
1154
+ .select({
1155
+ unitType: optionUnits.unitType,
1156
+ occupancyMin: optionUnits.occupancyMin,
1157
+ occupancyMax: optionUnits.occupancyMax,
1158
+ })
1159
+ .from(optionUnits)
1160
+ .where(eq(optionUnits.id, id))
1161
+ .limit(1);
1162
+ if (!existing) {
1163
+ return null;
1164
+ }
1165
+ const merged = {
1166
+ unitType: "unitType" in data ? data.unitType : existing.unitType,
1167
+ occupancyMin: "occupancyMin" in data ? data.occupancyMin : existing.occupancyMin,
1168
+ occupancyMax: "occupancyMax" in data ? data.occupancyMax : existing.occupancyMax,
1169
+ };
1170
+ const validation = validateMergedOptionUnit(merged);
1171
+ if (!validation.ok) {
1172
+ const first = validation.issues[0];
1173
+ throw new RequestValidationError(first?.message ?? "Invalid option unit", {
1174
+ issues: validation.issues,
1175
+ });
1176
+ }
1114
1177
  const [row] = await db
1115
1178
  .update(optionUnits)
1116
1179
  .set({ ...data, updatedAt: new Date() })
@@ -173,6 +173,19 @@ export declare const selectProductSchema: z.ZodObject<{
173
173
  createdAt: z.ZodCoercedDate<unknown>;
174
174
  updatedAt: z.ZodCoercedDate<unknown>;
175
175
  }, z.core.$strip>;
176
+ export declare const productListSortFieldSchema: z.ZodEnum<{
177
+ name: "name";
178
+ createdAt: "createdAt";
179
+ status: "status";
180
+ startDate: "startDate";
181
+ endDate: "endDate";
182
+ pax: "pax";
183
+ sellAmount: "sellAmount";
184
+ }>;
185
+ export declare const productListSortDirSchema: z.ZodEnum<{
186
+ asc: "asc";
187
+ desc: "desc";
188
+ }>;
176
189
  export declare const productListQuerySchema: z.ZodObject<{
177
190
  status: z.ZodOptional<z.ZodEnum<{
178
191
  active: "active";
@@ -206,6 +219,25 @@ export declare const productListQuerySchema: z.ZodObject<{
206
219
  categoryId: z.ZodOptional<z.ZodString>;
207
220
  tag: z.ZodOptional<z.ZodString>;
208
221
  search: z.ZodOptional<z.ZodString>;
222
+ dateFrom: z.ZodOptional<z.ZodString>;
223
+ dateTo: z.ZodOptional<z.ZodString>;
224
+ paxMin: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
225
+ paxMax: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
226
+ sellAmountMin: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
227
+ sellAmountMax: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
228
+ sortBy: z.ZodDefault<z.ZodEnum<{
229
+ name: "name";
230
+ createdAt: "createdAt";
231
+ status: "status";
232
+ startDate: "startDate";
233
+ endDate: "endDate";
234
+ pax: "pax";
235
+ sellAmount: "sellAmount";
236
+ }>>;
237
+ sortDir: z.ZodDefault<z.ZodEnum<{
238
+ asc: "asc";
239
+ desc: "desc";
240
+ }>>;
209
241
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
210
242
  offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
211
243
  }, z.core.$strip>;
@@ -256,6 +288,15 @@ export declare const productOptionListQuerySchema: z.ZodObject<{
256
288
  }, z.core.$strip>;
257
289
  export type InsertProductOption = z.infer<typeof insertProductOptionSchema>;
258
290
  export type UpdateProductOption = z.infer<typeof updateProductOptionSchema>;
291
+ type OccupancyShape = {
292
+ unitType?: string | null | undefined;
293
+ occupancyMin?: number | null | undefined;
294
+ occupancyMax?: number | null | undefined;
295
+ };
296
+ type OccupancyIssue = {
297
+ path: string[];
298
+ message: string;
299
+ };
259
300
  export declare const insertOptionUnitSchema: z.ZodObject<{
260
301
  name: z.ZodString;
261
302
  code: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -300,6 +341,20 @@ export declare const updateOptionUnitSchema: z.ZodObject<{
300
341
  isHidden: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
301
342
  sortOrder: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
302
343
  }, z.core.$strip>;
344
+ /**
345
+ * Validate the merged state of an option unit — the persisted record with a
346
+ * patch applied. The partial-update schema only sees the patch payload, so
347
+ * it can't catch e.g. PATCH `{ occupancyMin: null }` clearing occupancy on a
348
+ * unit whose persisted unitType is already "room". The service layer fetches
349
+ * the existing row, applies the patch, and runs this against the merged
350
+ * shape before writing.
351
+ */
352
+ export declare function validateMergedOptionUnit(merged: OccupancyShape): {
353
+ ok: true;
354
+ } | {
355
+ ok: false;
356
+ issues: OccupancyIssue[];
357
+ };
303
358
  export declare const optionUnitListQuerySchema: z.ZodObject<{
304
359
  optionId: z.ZodOptional<z.ZodString>;
305
360
  unitType: z.ZodOptional<z.ZodEnum<{
@@ -322,4 +377,5 @@ export type InsertVersion = z.infer<typeof insertVersionSchema>;
322
377
  export declare const insertProductNoteSchema: z.ZodObject<{
323
378
  content: z.ZodString;
324
379
  }, z.core.$strip>;
380
+ export {};
325
381
  //# sourceMappingURL=validation-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-core.d.ts","sourceRoot":"","sources":["../src/validation-core.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,CAAC,EACF,MAAM,wBAAwB,CAAA;AA2C/B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiD,CAAA;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2D,CAAA;AAC3F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAA;AACF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAY/D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAA0B,CAAA;AAChE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAAoC,CAAA;AAC1E,eAAO,MAAM,4BAA4B;;;;;;;;;iBAKvC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAiB3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAAuB,CAAA;AAC1D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAAiC,CAAA;AACpE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAKpC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;iBAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;iBAElC,CAAA"}
1
+ {"version":3,"file":"validation-core.d.ts","sourceRoot":"","sources":["../src/validation-core.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,CAAC,EACF,MAAM,wBAAwB,CAAA;AA2C/B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiD,CAAA;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA2D,CAAA;AAC3F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAA;AACF,eAAO,MAAM,0BAA0B;;;;;;;;EAQrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;EAA0B,CAAA;AAE/D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBjC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAY/D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAA0B,CAAA;AAChE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAAoC,CAAA;AAC1E,eAAO,MAAM,4BAA4B;;;;;;;;;iBAKvC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAwB3E,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACzC,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AA2BzD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAA;AAMF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAYjC,CAAA;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,GACrB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAGxD;AACD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAKpC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;iBAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;iBAElC,CAAA"}
@@ -46,6 +46,16 @@ export const selectProductSchema = productCoreSchema.extend({
46
46
  createdAt: z.coerce.date(),
47
47
  updatedAt: z.coerce.date(),
48
48
  });
49
+ export const productListSortFieldSchema = z.enum([
50
+ "name",
51
+ "status",
52
+ "sellAmount",
53
+ "pax",
54
+ "startDate",
55
+ "endDate",
56
+ "createdAt",
57
+ ]);
58
+ export const productListSortDirSchema = z.enum(["asc", "desc"]);
49
59
  export const productListQuerySchema = z.object({
50
60
  status: productStatusSchema.optional(),
51
61
  bookingMode: productBookingModeSchema.optional(),
@@ -58,6 +68,14 @@ export const productListQuerySchema = z.object({
58
68
  categoryId: z.string().optional(),
59
69
  tag: z.string().optional(),
60
70
  search: z.string().optional(),
71
+ dateFrom: z.string().optional(),
72
+ dateTo: z.string().optional(),
73
+ paxMin: z.coerce.number().int().min(0).optional(),
74
+ paxMax: z.coerce.number().int().min(0).optional(),
75
+ sellAmountMin: z.coerce.number().int().min(0).optional(),
76
+ sellAmountMax: z.coerce.number().int().min(0).optional(),
77
+ sortBy: productListSortFieldSchema.default("createdAt"),
78
+ sortDir: productListSortDirSchema.default("desc"),
61
79
  limit: z.coerce.number().int().min(1).max(100).default(50),
62
80
  offset: z.coerce.number().int().min(0).default(0),
63
81
  });
@@ -98,8 +116,63 @@ const optionUnitCoreSchema = z.object({
98
116
  isHidden: z.boolean().default(false),
99
117
  sortOrder: z.number().int().default(0),
100
118
  });
101
- export const insertOptionUnitSchema = optionUnitCoreSchema;
102
- export const updateOptionUnitSchema = optionUnitCoreSchema.partial();
119
+ // Room and vehicle units carry capacity that the storefront pricing math
120
+ // multiplies by (e.g. `room.occupancy * room.quantity` for per_person
121
+ // totals in service-departures). Without occupancyMin set, the multiplier
122
+ // silently falls back to 1 and the booking under-charges — see #481.
123
+ const OCCUPANCY_REQUIRED_TYPES = new Set(["room", "vehicle"]);
124
+ function collectOccupancyIssues(data) {
125
+ const issues = [];
126
+ if (data.unitType &&
127
+ OCCUPANCY_REQUIRED_TYPES.has(data.unitType) &&
128
+ (data.occupancyMin == null || data.occupancyMin < 1)) {
129
+ issues.push({
130
+ path: ["occupancyMin"],
131
+ message: `${data.unitType} units must declare occupancyMin (≥ 1)`,
132
+ });
133
+ }
134
+ if (data.occupancyMin != null &&
135
+ data.occupancyMax != null &&
136
+ data.occupancyMax < data.occupancyMin) {
137
+ issues.push({
138
+ path: ["occupancyMax"],
139
+ message: "occupancyMax must be ≥ occupancyMin",
140
+ });
141
+ }
142
+ return issues;
143
+ }
144
+ export const insertOptionUnitSchema = optionUnitCoreSchema.superRefine((data, ctx) => {
145
+ for (const issue of collectOccupancyIssues(data)) {
146
+ ctx.addIssue({ code: "custom", ...issue });
147
+ }
148
+ });
149
+ // Partial-update schema only enforces what's statically decidable from the
150
+ // patch alone. The "unitType room/vehicle requires occupancyMin" rule needs
151
+ // the merged record state, so it lives in the service layer below
152
+ // (validateMergedOptionUnit).
153
+ export const updateOptionUnitSchema = optionUnitCoreSchema.partial().superRefine((data, ctx) => {
154
+ if (data.occupancyMin != null &&
155
+ data.occupancyMax != null &&
156
+ data.occupancyMax < data.occupancyMin) {
157
+ ctx.addIssue({
158
+ code: "custom",
159
+ path: ["occupancyMax"],
160
+ message: "occupancyMax must be ≥ occupancyMin",
161
+ });
162
+ }
163
+ });
164
+ /**
165
+ * Validate the merged state of an option unit — the persisted record with a
166
+ * patch applied. The partial-update schema only sees the patch payload, so
167
+ * it can't catch e.g. PATCH `{ occupancyMin: null }` clearing occupancy on a
168
+ * unit whose persisted unitType is already "room". The service layer fetches
169
+ * the existing row, applies the patch, and runs this against the merged
170
+ * shape before writing.
171
+ */
172
+ export function validateMergedOptionUnit(merged) {
173
+ const issues = collectOccupancyIssues(merged);
174
+ return issues.length === 0 ? { ok: true } : { ok: false, issues };
175
+ }
103
176
  export const optionUnitListQuerySchema = z.object({
104
177
  optionId: z.string().optional(),
105
178
  unitType: optionUnitTypeSchema.optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/products",
3
- "version": "0.28.0",
3
+ "version": "0.28.3",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -55,12 +55,12 @@
55
55
  "hono": "^4.12.10",
56
56
  "pdf-lib": "^1.17.1",
57
57
  "zod": "^4.3.6",
58
- "@voyantjs/core": "0.28.0",
59
- "@voyantjs/db": "0.28.0",
60
- "@voyantjs/hono": "0.28.0",
61
- "@voyantjs/utils": "0.28.0",
62
- "@voyantjs/catalog": "0.28.0",
63
- "@voyantjs/storage": "0.28.0"
58
+ "@voyantjs/core": "0.28.3",
59
+ "@voyantjs/db": "0.28.3",
60
+ "@voyantjs/hono": "0.28.3",
61
+ "@voyantjs/utils": "0.28.3",
62
+ "@voyantjs/catalog": "0.28.3",
63
+ "@voyantjs/storage": "0.28.3"
64
64
  },
65
65
  "devDependencies": {
66
66
  "typescript": "^6.0.2",