@shophost/rest-api 2.0.31 → 2.0.33

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 (348) hide show
  1. package/package.json +13 -14
  2. package/src/app.js +53 -1
  3. package/src/app.js.map +1 -0
  4. package/src/core/auth/auth.schema.js +41 -1
  5. package/src/core/auth/auth.schema.js.map +1 -0
  6. package/src/core/auth/auth.util.js +44 -1
  7. package/src/core/auth/auth.util.js.map +1 -0
  8. package/src/core/auth/better-auth.lib.js +100 -1
  9. package/src/core/auth/better-auth.lib.js.map +1 -0
  10. package/src/core/auth/generate-password-hash.util.d.ts +3 -0
  11. package/src/core/auth/generate-password-hash.util.js +30 -1
  12. package/src/core/auth/generate-password-hash.util.js.map +1 -0
  13. package/src/core/auth/headers.schema.js +22 -1
  14. package/src/core/auth/headers.schema.js.map +1 -0
  15. package/src/core/auth/user.schema.js +30 -1
  16. package/src/core/auth/user.schema.js.map +1 -0
  17. package/src/core/db/__generated__/client/browser.d.ts +128 -0
  18. package/src/core/db/__generated__/client/browser.js +18 -1
  19. package/src/core/db/__generated__/client/browser.js.map +1 -0
  20. package/src/core/db/__generated__/client/client.d.ts +143 -0
  21. package/src/core/db/__generated__/client/client.js +35 -1
  22. package/src/core/db/__generated__/client/client.js.map +1 -0
  23. package/src/core/db/__generated__/client/commonInputTypes.js +11 -1
  24. package/src/core/db/__generated__/client/commonInputTypes.js.map +1 -0
  25. package/src/core/db/__generated__/client/enums.js +200 -1
  26. package/src/core/db/__generated__/client/enums.js.map +1 -0
  27. package/src/core/db/__generated__/client/internal/class.d.ts +343 -0
  28. package/src/core/db/__generated__/client/internal/class.js +55 -1
  29. package/src/core/db/__generated__/client/internal/class.js.map +1 -0
  30. package/src/core/db/__generated__/client/internal/prismaNamespace.d.ts +234 -0
  31. package/src/core/db/__generated__/client/internal/prismaNamespace.js +541 -1
  32. package/src/core/db/__generated__/client/internal/prismaNamespace.js.map +1 -0
  33. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.d.ts +15 -0
  34. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js +512 -1
  35. package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -0
  36. package/src/core/db/__generated__/client/models/Account.d.ts +633 -0
  37. package/src/core/db/__generated__/client/models/Account.js +2 -1
  38. package/src/core/db/__generated__/client/models/Account.js.map +1 -0
  39. package/src/core/db/__generated__/client/models/Address.d.ts +706 -0
  40. package/src/core/db/__generated__/client/models/Address.js +2 -1
  41. package/src/core/db/__generated__/client/models/Address.js.map +1 -0
  42. package/src/core/db/__generated__/client/models/Campaign.d.ts +643 -0
  43. package/src/core/db/__generated__/client/models/Campaign.js +2 -1
  44. package/src/core/db/__generated__/client/models/Campaign.js.map +1 -0
  45. package/src/core/db/__generated__/client/models/ClosingTimes.d.ts +639 -0
  46. package/src/core/db/__generated__/client/models/ClosingTimes.js +2 -1
  47. package/src/core/db/__generated__/client/models/ClosingTimes.js.map +1 -0
  48. package/src/core/db/__generated__/client/models/File.d.ts +757 -0
  49. package/src/core/db/__generated__/client/models/File.js +2 -1
  50. package/src/core/db/__generated__/client/models/File.js.map +1 -0
  51. package/src/core/db/__generated__/client/models/Invitation.d.ts +633 -0
  52. package/src/core/db/__generated__/client/models/Invitation.js +2 -1
  53. package/src/core/db/__generated__/client/models/Invitation.js.map +1 -0
  54. package/src/core/db/__generated__/client/models/LegalEntity.d.ts +657 -0
  55. package/src/core/db/__generated__/client/models/LegalEntity.js +2 -1
  56. package/src/core/db/__generated__/client/models/LegalEntity.js.map +1 -0
  57. package/src/core/db/__generated__/client/models/Manufacturer.d.ts +684 -0
  58. package/src/core/db/__generated__/client/models/Manufacturer.js +2 -1
  59. package/src/core/db/__generated__/client/models/Manufacturer.js.map +1 -0
  60. package/src/core/db/__generated__/client/models/ManufacturerTranslation.d.ts +633 -0
  61. package/src/core/db/__generated__/client/models/ManufacturerTranslation.js +2 -1
  62. package/src/core/db/__generated__/client/models/ManufacturerTranslation.js.map +1 -0
  63. package/src/core/db/__generated__/client/models/Member.d.ts +633 -0
  64. package/src/core/db/__generated__/client/models/Member.js +2 -1
  65. package/src/core/db/__generated__/client/models/Member.js.map +1 -0
  66. package/src/core/db/__generated__/client/models/Modifier.d.ts +667 -0
  67. package/src/core/db/__generated__/client/models/Modifier.js +2 -1
  68. package/src/core/db/__generated__/client/models/Modifier.js.map +1 -0
  69. package/src/core/db/__generated__/client/models/ModifierGroup.d.ts +691 -0
  70. package/src/core/db/__generated__/client/models/ModifierGroup.js +2 -1
  71. package/src/core/db/__generated__/client/models/ModifierGroup.js.map +1 -0
  72. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.d.ts +633 -0
  73. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.js +2 -1
  74. package/src/core/db/__generated__/client/models/ModifierGroupTranslation.js.map +1 -0
  75. package/src/core/db/__generated__/client/models/OpeningTimes.d.ts +639 -0
  76. package/src/core/db/__generated__/client/models/OpeningTimes.js +2 -1
  77. package/src/core/db/__generated__/client/models/OpeningTimes.js.map +1 -0
  78. package/src/core/db/__generated__/client/models/Order.d.ts +705 -0
  79. package/src/core/db/__generated__/client/models/Order.js +2 -1
  80. package/src/core/db/__generated__/client/models/Order.js.map +1 -0
  81. package/src/core/db/__generated__/client/models/OrderItem.d.ts +691 -0
  82. package/src/core/db/__generated__/client/models/OrderItem.js +2 -1
  83. package/src/core/db/__generated__/client/models/OrderItem.js.map +1 -0
  84. package/src/core/db/__generated__/client/models/OrderItemTranslation.d.ts +633 -0
  85. package/src/core/db/__generated__/client/models/OrderItemTranslation.js +2 -1
  86. package/src/core/db/__generated__/client/models/OrderItemTranslation.js.map +1 -0
  87. package/src/core/db/__generated__/client/models/Organization.d.ts +816 -0
  88. package/src/core/db/__generated__/client/models/Organization.js +2 -1
  89. package/src/core/db/__generated__/client/models/Organization.js.map +1 -0
  90. package/src/core/db/__generated__/client/models/OrganizationConfiguration.d.ts +681 -0
  91. package/src/core/db/__generated__/client/models/OrganizationConfiguration.js +2 -1
  92. package/src/core/db/__generated__/client/models/OrganizationConfiguration.js.map +1 -0
  93. package/src/core/db/__generated__/client/models/Payment.d.ts +673 -0
  94. package/src/core/db/__generated__/client/models/Payment.js +2 -1
  95. package/src/core/db/__generated__/client/models/Payment.js.map +1 -0
  96. package/src/core/db/__generated__/client/models/PaymentSession.d.ts +643 -0
  97. package/src/core/db/__generated__/client/models/PaymentSession.js +2 -1
  98. package/src/core/db/__generated__/client/models/PaymentSession.js.map +1 -0
  99. package/src/core/db/__generated__/client/models/Product.d.ts +751 -0
  100. package/src/core/db/__generated__/client/models/Product.js +2 -1
  101. package/src/core/db/__generated__/client/models/Product.js.map +1 -0
  102. package/src/core/db/__generated__/client/models/ProductCategory.d.ts +694 -0
  103. package/src/core/db/__generated__/client/models/ProductCategory.js +2 -1
  104. package/src/core/db/__generated__/client/models/ProductCategory.js.map +1 -0
  105. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.d.ts +633 -0
  106. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.js +2 -1
  107. package/src/core/db/__generated__/client/models/ProductCategoryTranslation.js.map +1 -0
  108. package/src/core/db/__generated__/client/models/ProductSnapshot.d.ts +669 -0
  109. package/src/core/db/__generated__/client/models/ProductSnapshot.js +2 -1
  110. package/src/core/db/__generated__/client/models/ProductSnapshot.js.map +1 -0
  111. package/src/core/db/__generated__/client/models/ProductTranslation.d.ts +633 -0
  112. package/src/core/db/__generated__/client/models/ProductTranslation.js +2 -1
  113. package/src/core/db/__generated__/client/models/ProductTranslation.js.map +1 -0
  114. package/src/core/db/__generated__/client/models/Reservation.d.ts +655 -0
  115. package/src/core/db/__generated__/client/models/Reservation.js +2 -1
  116. package/src/core/db/__generated__/client/models/Reservation.js.map +1 -0
  117. package/src/core/db/__generated__/client/models/Session.d.ts +633 -0
  118. package/src/core/db/__generated__/client/models/Session.js +2 -1
  119. package/src/core/db/__generated__/client/models/Session.js.map +1 -0
  120. package/src/core/db/__generated__/client/models/ShippingMethod.d.ts +684 -0
  121. package/src/core/db/__generated__/client/models/ShippingMethod.js +2 -1
  122. package/src/core/db/__generated__/client/models/ShippingMethod.js.map +1 -0
  123. package/src/core/db/__generated__/client/models/ShippingZone.d.ts +643 -0
  124. package/src/core/db/__generated__/client/models/ShippingZone.js +2 -1
  125. package/src/core/db/__generated__/client/models/ShippingZone.js.map +1 -0
  126. package/src/core/db/__generated__/client/models/User.d.ts +741 -0
  127. package/src/core/db/__generated__/client/models/User.js +2 -1
  128. package/src/core/db/__generated__/client/models/User.js.map +1 -0
  129. package/src/core/db/__generated__/client/models/Verification.d.ts +597 -0
  130. package/src/core/db/__generated__/client/models/Verification.js +2 -1
  131. package/src/core/db/__generated__/client/models/Verification.js.map +1 -0
  132. package/src/core/db/__generated__/client/models.js +2 -1
  133. package/src/core/db/__generated__/client/models.js.map +1 -0
  134. package/src/core/db/index.js +2 -1
  135. package/src/core/db/index.js.map +1 -0
  136. package/src/core/exceptions/http-exception.js +9 -1
  137. package/src/core/exceptions/http-exception.js.map +1 -0
  138. package/src/core/hono/hono.js +123 -1
  139. package/src/core/hono/hono.js.map +1 -0
  140. package/src/core/lib/prisma.js +11 -1
  141. package/src/core/lib/prisma.js.map +1 -0
  142. package/src/core/logging/pino.js +5 -1
  143. package/src/core/logging/pino.js.map +1 -0
  144. package/src/core/notifications/email.service.d.ts +15 -0
  145. package/src/core/notifications/email.service.js +116 -1
  146. package/src/core/notifications/email.service.js.map +1 -0
  147. package/src/core/openapi/openapi.lib.js +26 -1
  148. package/src/core/openapi/openapi.lib.js.map +1 -0
  149. package/src/core/types/google-maps.types.js +2 -1
  150. package/src/core/types/google-maps.types.js.map +1 -0
  151. package/src/core/utils/currency.util.js +11 -1
  152. package/src/core/utils/currency.util.js.map +1 -0
  153. package/src/core/utils/env.util.js +8 -1
  154. package/src/core/utils/env.util.js.map +1 -0
  155. package/src/core/utils/object.util.d.ts +10 -0
  156. package/src/core/utils/object.util.js +39 -1
  157. package/src/core/utils/object.util.js.map +1 -0
  158. package/src/core/utils/translations.util.js +2 -0
  159. package/src/core/utils/translations.util.js.map +1 -0
  160. package/src/core/utils/zod.util.d.ts +12 -0
  161. package/src/core/utils/zod.util.js +85 -1
  162. package/src/core/utils/zod.util.js.map +1 -0
  163. package/src/db.js +3 -1
  164. package/src/db.js.map +1 -0
  165. package/src/features/access/access.handler.js +91 -1
  166. package/src/features/access/access.handler.js.map +1 -0
  167. package/src/features/access/access.route.js +220 -1
  168. package/src/features/access/access.route.js.map +1 -0
  169. package/src/features/access/access.schema.js +108 -1
  170. package/src/features/access/access.schema.js.map +1 -0
  171. package/src/features/access/access.service.js +294 -1
  172. package/src/features/access/access.service.js.map +1 -0
  173. package/src/features/cart/cart.handler.js +17 -1
  174. package/src/features/cart/cart.handler.js.map +1 -0
  175. package/src/features/cart/cart.route.js +32 -1
  176. package/src/features/cart/cart.route.js.map +1 -0
  177. package/src/features/cart/cart.schema.js +39 -1
  178. package/src/features/cart/cart.schema.js.map +1 -0
  179. package/src/features/cart/cart.service.d.ts +7 -0
  180. package/src/features/cart/cart.service.js +97 -1
  181. package/src/features/cart/cart.service.js.map +1 -0
  182. package/src/features/cart/cart.util.js +76 -1
  183. package/src/features/cart/cart.util.js.map +1 -0
  184. package/src/features/file/file.handler.js +23 -1
  185. package/src/features/file/file.handler.js.map +1 -0
  186. package/src/features/file/file.route.js +34 -1
  187. package/src/features/file/file.route.js.map +1 -0
  188. package/src/features/file/file.schema.js +77 -1
  189. package/src/features/file/file.schema.js.map +1 -0
  190. package/src/features/file/file.service.d.ts +6 -0
  191. package/src/features/file/file.service.js +66 -1
  192. package/src/features/file/file.service.js.map +1 -0
  193. package/src/features/health/health.handler.js +10 -1
  194. package/src/features/health/health.handler.js.map +1 -0
  195. package/src/features/health/health.route.js +25 -1
  196. package/src/features/health/health.route.js.map +1 -0
  197. package/src/features/index.js +16 -1
  198. package/src/features/index.js.map +1 -0
  199. package/src/features/location/location.handler.js +25 -1
  200. package/src/features/location/location.handler.js.map +1 -0
  201. package/src/features/location/location.route.js +56 -1
  202. package/src/features/location/location.route.js.map +1 -0
  203. package/src/features/location/location.schema.js +50 -1
  204. package/src/features/location/location.schema.js.map +1 -0
  205. package/src/features/location/location.service.d.ts +3 -0
  206. package/src/features/location/location.service.js +141 -1
  207. package/src/features/location/location.service.js.map +1 -0
  208. package/src/features/manufacturer/manufacturer.handler.js +53 -1
  209. package/src/features/manufacturer/manufacturer.handler.js.map +1 -0
  210. package/src/features/manufacturer/manufacturer.route.js +97 -1
  211. package/src/features/manufacturer/manufacturer.route.js.map +1 -0
  212. package/src/features/manufacturer/manufacturer.schema.js +125 -1
  213. package/src/features/manufacturer/manufacturer.schema.js.map +1 -0
  214. package/src/features/manufacturer/manufacturer.service.d.ts +19 -0
  215. package/src/features/manufacturer/manufacturer.service.js +190 -1
  216. package/src/features/manufacturer/manufacturer.service.js.map +1 -0
  217. package/src/features/order/emails/order-confirmation.email.js +229 -1
  218. package/src/features/order/emails/order-confirmation.email.js.map +1 -0
  219. package/src/features/order/emails/order-notification.email.js +229 -1
  220. package/src/features/order/emails/order-notification.email.js.map +1 -0
  221. package/src/features/order/fulfilment.schema.js +3 -1
  222. package/src/features/order/fulfilment.schema.js.map +1 -0
  223. package/src/features/order/order.handler.js +54 -1
  224. package/src/features/order/order.handler.js.map +1 -0
  225. package/src/features/order/order.route.js +111 -1
  226. package/src/features/order/order.route.js.map +1 -0
  227. package/src/features/order/order.schema.js +158 -1
  228. package/src/features/order/order.schema.js.map +1 -0
  229. package/src/features/order/order.service.d.ts +15 -0
  230. package/src/features/order/order.service.js +306 -1
  231. package/src/features/order/order.service.js.map +1 -0
  232. package/src/features/order/recipient.schema.js +38 -1
  233. package/src/features/order/recipient.schema.js.map +1 -0
  234. package/src/features/organization/legal-entity.schema.js +83 -1
  235. package/src/features/organization/legal-entity.schema.js.map +1 -0
  236. package/src/features/organization/organization-configuration.schema.js +115 -1
  237. package/src/features/organization/organization-configuration.schema.js.map +1 -0
  238. package/src/features/organization/organization.handler.js +48 -1
  239. package/src/features/organization/organization.handler.js.map +1 -0
  240. package/src/features/organization/organization.route.js +84 -1
  241. package/src/features/organization/organization.route.js.map +1 -0
  242. package/src/features/organization/organization.schema.js +64 -1
  243. package/src/features/organization/organization.schema.js.map +1 -0
  244. package/src/features/organization/organization.service.d.ts +15 -0
  245. package/src/features/organization/organization.service.js +334 -1
  246. package/src/features/organization/organization.service.js.map +1 -0
  247. package/src/features/payment/payment.handler.js +16 -1
  248. package/src/features/payment/payment.handler.js.map +1 -0
  249. package/src/features/payment/payment.route.js +22 -1
  250. package/src/features/payment/payment.route.js.map +1 -0
  251. package/src/features/payment/payment.schema.js +46 -1
  252. package/src/features/payment/payment.schema.js.map +1 -0
  253. package/src/features/payment/payment.service.js +100 -1
  254. package/src/features/payment/payment.service.js.map +1 -0
  255. package/src/features/payment/stripe.service.js +164 -1
  256. package/src/features/payment/stripe.service.js.map +1 -0
  257. package/src/features/product/product-modifier.schema.js +84 -1
  258. package/src/features/product/product-modifier.schema.js.map +1 -0
  259. package/src/features/product/product.handler.js +87 -1
  260. package/src/features/product/product.handler.js.map +1 -0
  261. package/src/features/product/product.route.js +179 -1
  262. package/src/features/product/product.route.js.map +1 -0
  263. package/src/features/product/product.schema.js +143 -1
  264. package/src/features/product/product.schema.js.map +1 -0
  265. package/src/features/product/product.service.d.ts +25 -0
  266. package/src/features/product/product.service.js +440 -1
  267. package/src/features/product/product.service.js.map +1 -0
  268. package/src/features/product-category/product-category.handler.js +59 -1
  269. package/src/features/product-category/product-category.handler.js.map +1 -0
  270. package/src/features/product-category/product-category.route.js +139 -1
  271. package/src/features/product-category/product-category.route.js.map +1 -0
  272. package/src/features/product-category/product-category.schema.js +86 -1
  273. package/src/features/product-category/product-category.schema.js.map +1 -0
  274. package/src/features/product-category/product-category.service.d.ts +22 -0
  275. package/src/features/product-category/product-category.service.js +220 -1
  276. package/src/features/product-category/product-category.service.js.map +1 -0
  277. package/src/features/reservation/emails/reservation-cancellation.email.js +82 -1
  278. package/src/features/reservation/emails/reservation-cancellation.email.js.map +1 -0
  279. package/src/features/reservation/emails/reservation-confirmation.email.js +82 -1
  280. package/src/features/reservation/emails/reservation-confirmation.email.js.map +1 -0
  281. package/src/features/reservation/emails/reservation-notification.email.js +93 -1
  282. package/src/features/reservation/emails/reservation-notification.email.js.map +1 -0
  283. package/src/features/reservation/reservation.handler.js +65 -1
  284. package/src/features/reservation/reservation.handler.js.map +1 -0
  285. package/src/features/reservation/reservation.route.js +167 -1
  286. package/src/features/reservation/reservation.route.js.map +1 -0
  287. package/src/features/reservation/reservation.schema.js +51 -1
  288. package/src/features/reservation/reservation.schema.js.map +1 -0
  289. package/src/features/reservation/reservation.service.d.ts +18 -0
  290. package/src/features/reservation/reservation.service.js +231 -1
  291. package/src/features/reservation/reservation.service.js.map +1 -0
  292. package/src/features/shipping/shipping.handler.js +32 -1
  293. package/src/features/shipping/shipping.handler.js.map +1 -0
  294. package/src/features/shipping/shipping.route.js +51 -1
  295. package/src/features/shipping/shipping.route.js.map +1 -0
  296. package/src/features/shipping/shipping.service.d.ts +7 -0
  297. package/src/features/shipping/shipping.service.js +96 -1
  298. package/src/features/shipping/shipping.service.js.map +1 -0
  299. package/src/features/shipping-method/shipping-method.handler.js +60 -1
  300. package/src/features/shipping-method/shipping-method.handler.js.map +1 -0
  301. package/src/features/shipping-method/shipping-method.route.js +144 -1
  302. package/src/features/shipping-method/shipping-method.route.js.map +1 -0
  303. package/src/features/shipping-method/shipping-method.schema.js +48 -1
  304. package/src/features/shipping-method/shipping-method.schema.js.map +1 -0
  305. package/src/features/shipping-method/shipping-method.service.d.ts +25 -0
  306. package/src/features/shipping-method/shipping-method.service.js +229 -1
  307. package/src/features/shipping-method/shipping-method.service.js.map +1 -0
  308. package/src/features/shipping-method/shipping-zone.schema.js +31 -1
  309. package/src/features/shipping-method/shipping-zone.schema.js.map +1 -0
  310. package/src/features/webhook/webhook.handler.js +50 -1
  311. package/src/features/webhook/webhook.handler.js.map +1 -0
  312. package/src/features/webhook/webhook.route.js +33 -1
  313. package/src/features/webhook/webhook.route.js.map +1 -0
  314. package/src/index.js +6 -1
  315. package/src/index.js.map +1 -0
  316. package/src/integrations/next.js +82 -1
  317. package/src/integrations/next.js.map +1 -0
  318. package/src/schemas/address.schema.d.ts +8 -0
  319. package/src/schemas/address.schema.js +112 -1
  320. package/src/schemas/address.schema.js.map +1 -0
  321. package/src/schemas/currency.schema.d.ts +42 -0
  322. package/src/schemas/currency.schema.js +118 -1
  323. package/src/schemas/currency.schema.js.map +1 -0
  324. package/src/schemas/error.schema.js +12 -1
  325. package/src/schemas/error.schema.js.map +1 -0
  326. package/src/schemas/index.js +29 -1
  327. package/src/schemas/index.js.map +1 -0
  328. package/src/schemas/locales.schema.js +238 -1
  329. package/src/schemas/locales.schema.js.map +1 -0
  330. package/src/schemas/number.schema.js +29 -1
  331. package/src/schemas/number.schema.js.map +1 -0
  332. package/src/schemas/pagination.schema.js +54 -1
  333. package/src/schemas/pagination.schema.js.map +1 -0
  334. package/src/schemas/params.schema.js +20 -1
  335. package/src/schemas/params.schema.js.map +1 -0
  336. package/src/schemas/queries.schema.js +6 -1
  337. package/src/schemas/queries.schema.js.map +1 -0
  338. package/src/test/global-setup.js +37 -1
  339. package/src/test/global-setup.js.map +1 -0
  340. package/src/test/integration/api-fixtures.js +160 -1
  341. package/src/test/integration/api-fixtures.js.map +1 -0
  342. package/src/test/integration/seed.js +368 -1
  343. package/src/test/integration/seed.js.map +1 -0
  344. package/src/test/integration/test-helpers.js +154 -1
  345. package/src/test/integration/test-helpers.js.map +1 -0
  346. package/src/test/setup-test-env.js +7 -1
  347. package/src/test/setup-test-env.js.map +1 -0
  348. package/scripts/minify.mjs +0 -110
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/product/product.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1,59 @@
1
- import{__awaiter as e}from"tslib";import{createApiRouter as o}from"../../core/hono/hono";import{productCategoryRoute as t}from"./product-category.route";import{ProductCategoryService as r}from"./product-category.service";export const buildProductCategoryHandler=i=>{const d=o();return d.openapi(t.createProductCategory,o=>e(void 0,void 0,void 0,function*(){const e=o.get("auth"),t=o.req.valid("param"),d=o.req.valid("json"),a=yield e.isGranted("create"),n=new r(i),u=yield n.createProductCategory(t.organizationId,a.id,d);return o.json(u,201)})),d.openapi(t.getProductCategory,o=>e(void 0,void 0,void 0,function*(){const e=o.get("auth"),t=o.req.valid("param"),d=o.req.valid("query");yield e.isGranted("read");const a=new r(i),n=yield a.getProductCategory(t.organizationId,t.id,{locale:d.locale||null});return o.json(n,200)})),d.openapi(t.getProductCategories,o=>e(void 0,void 0,void 0,function*(){const e=o.req.valid("param"),t=o.req.valid("query"),d=new r(i),a=yield d.getProductCategories(e.organizationId,Object.assign(Object.assign({},t),{locale:t.locale||null,published:t.published}));return o.json(a,200)})),d.openapi(t.updateProductCategory,o=>e(void 0,void 0,void 0,function*(){const e=o.get("auth"),t=o.req.valid("param"),d=o.req.valid("json"),a=yield e.isGranted("update"),n=new r(i),u=yield n.updateProductCategory(t.organizationId,t.id,a.id,d);return o.json(u,200)})),d.openapi(t.updateProductCategoryStatus,o=>e(void 0,void 0,void 0,function*(){const e=o.get("auth"),t=o.req.valid("param"),d=yield e.isGranted("update"),a=new r(i),n=yield a.updateProductCategoryStatus(t.organizationId,t.id,t.operation,d.id);return o.json(n,200)})),d.openapi(t.deleteProductCategory,o=>e(void 0,void 0,void 0,function*(){const e=o.get("auth"),t=o.req.valid("param"),d=yield e.isGranted("delete"),a=new r(i);return yield a.deleteProductCategory(t.organizationId,t.id,d.id),o.body(null,204)})),d};
1
+ import { __awaiter } from "tslib";
2
+ import { createApiRouter } from "../../core/hono/hono";
3
+ import { productCategoryRoute } from "./product-category.route";
4
+ import { ProductCategoryService } from "./product-category.service";
5
+ export const buildProductCategoryHandler = (prisma) => {
6
+ const app = createApiRouter();
7
+ app.openapi(productCategoryRoute.createProductCategory, (c) => __awaiter(void 0, void 0, void 0, function* () {
8
+ const auth = c.get("auth");
9
+ const params = c.req.valid("param");
10
+ const body = c.req.valid("json");
11
+ const user = yield auth.isGranted("create");
12
+ const service = new ProductCategoryService(prisma);
13
+ const productCategory = yield service.createProductCategory(params.organizationId, user.id, body);
14
+ return c.json(productCategory, 201);
15
+ }));
16
+ app.openapi(productCategoryRoute.getProductCategory, (c) => __awaiter(void 0, void 0, void 0, function* () {
17
+ const auth = c.get("auth");
18
+ const params = c.req.valid("param");
19
+ const query = c.req.valid("query");
20
+ yield auth.isGranted("read");
21
+ const service = new ProductCategoryService(prisma);
22
+ const productCategory = yield service.getProductCategory(params.organizationId, params.id, { locale: query.locale || null });
23
+ return c.json(productCategory, 200);
24
+ }));
25
+ app.openapi(productCategoryRoute.getProductCategories, (c) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const params = c.req.valid("param");
27
+ const query = c.req.valid("query");
28
+ const service = new ProductCategoryService(prisma);
29
+ const result = yield service.getProductCategories(params.organizationId, Object.assign(Object.assign({}, query), { locale: query.locale || null, published: query.published }));
30
+ return c.json(result, 200);
31
+ }));
32
+ app.openapi(productCategoryRoute.updateProductCategory, (c) => __awaiter(void 0, void 0, void 0, function* () {
33
+ const auth = c.get("auth");
34
+ const params = c.req.valid("param");
35
+ const body = c.req.valid("json");
36
+ const user = yield auth.isGranted("update");
37
+ const service = new ProductCategoryService(prisma);
38
+ const updatedProductCategory = yield service.updateProductCategory(params.organizationId, params.id, user.id, body);
39
+ return c.json(updatedProductCategory, 200);
40
+ }));
41
+ app.openapi(productCategoryRoute.updateProductCategoryStatus, (c) => __awaiter(void 0, void 0, void 0, function* () {
42
+ const auth = c.get("auth");
43
+ const params = c.req.valid("param");
44
+ const user = yield auth.isGranted("update");
45
+ const service = new ProductCategoryService(prisma);
46
+ const updatedProductCategory = yield service.updateProductCategoryStatus(params.organizationId, params.id, params.operation, user.id);
47
+ return c.json(updatedProductCategory, 200);
48
+ }));
49
+ app.openapi(productCategoryRoute.deleteProductCategory, (c) => __awaiter(void 0, void 0, void 0, function* () {
50
+ const auth = c.get("auth");
51
+ const params = c.req.valid("param");
52
+ const user = yield auth.isGranted("delete");
53
+ const service = new ProductCategoryService(prisma);
54
+ yield service.deleteProductCategory(params.organizationId, params.id, user.id);
55
+ return c.body(null, 204);
56
+ }));
57
+ return app;
58
+ };
59
+ //# sourceMappingURL=product-category.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-category.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/product-category/product-category.handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1,139 @@
1
- import{z as t}from"@hono/zod-openapi";import{createApiRoute as e}from"../../core/hono/hono";import{CreateProductCategorySchema as o,ErrorSchema as a,HeaderSchema as r,LocalizedProductCategorySchema as i,OrganizationParams as s,OrganizationWithIdParams as p,PaginationMetaSchema as d,PaginationQuerySchema as n,ProductCategorySchema as c,UpdateProductCategorySchema as u}from"../../schemas";import{GetResourceQuerySchema as g}from"../../schemas/queries.schema";const h=e({description:"Fetches a paginated list of product categories for a specific organization",headers:r,method:"GET",operationId:"getProductCategories",path:"/:organizationId/product-categories",pathParams:s,query:n,responses:{200:t.object({list:t.array(t.union([c,i])),meta:d}),400:a,401:a},summary:"Get Product Categories",tags:["ProductCategory"]}),m=e({body:o,description:"Creates a new product category for a specific organization",headers:r,method:"POST",operationId:"createProductCategory",path:"/:organizationId/product-categories",pathParams:s,responses:{201:c,400:a,401:a,404:a},summary:"Create Product Category",tags:["ProductCategory"]}),y=e({description:"Fetches a specific product category by ID",headers:r,method:"GET",operationId:"getProductCategory",path:"/:organizationId/product-categories/:id",pathParams:p,query:g,responses:{200:t.union([c,i]),401:a,404:a},summary:"Get Product Category",tags:["ProductCategory"]}),P=e({body:u,description:"Updates a specific product category by ID",headers:r,method:"PATCH",operationId:"updateProductCategory",path:"/:organizationId/product-categories/:id",pathParams:p,responses:{200:c,400:a,401:a,404:a},summary:"Update Product Category",tags:["ProductCategory"]}),C=e({description:"Sets the published status of an existing product category based on the operation (publish or unpublish)",headers:r,method:"POST",operationId:"updateProductCategoryStatus",path:"/:organizationId/product-categories/:id/status/:operation",pathParams:t.object({id:t.string().openapi({description:"The organization ID",example:"ckel0e8qw00004n5p5w6fznym",param:{in:"path",name:"id"}}),operation:t.enum(["publish","unpublish"]).openapi({description:"The operation to perform on the product category",example:"publish",param:{in:"path",name:"operation"}}),organizationId:t.string().openapi({description:"The organization ID",example:"ckel0e8qw00004n5p5w6fznym",param:{in:"path",name:"organizationId"}})}),responses:{200:c,400:a,401:a,404:a},summary:"Publish or Unpublish Product Category",tags:["ProductCategory"]}),l=e({description:"Deletes a specific product category by ID",headers:r,method:"DELETE",operationId:"deleteProductCategory",path:"/:organizationId/product-categories/:id",pathParams:p,responses:{204:null,400:a,401:a,404:a},summary:"Delete Product Category",tags:["ProductCategory"]});export const productCategoryRoute={getProductCategories:h,createProductCategory:m,getProductCategory:y,updateProductCategory:P,updateProductCategoryStatus:C,deleteProductCategory:l};
1
+ import { z } from "@hono/zod-openapi";
2
+ import { createApiRoute } from "../../core/hono/hono";
3
+ import { CreateProductCategorySchema, ErrorSchema, HeaderSchema, LocalizedProductCategorySchema, OrganizationParams, OrganizationWithIdParams, PaginationMetaSchema, PaginationQuerySchema, ProductCategorySchema, UpdateProductCategorySchema, } from "../../schemas";
4
+ import { GetResourceQuerySchema } from "../../schemas/queries.schema";
5
+ const getProductCategoriesRoute = createApiRoute({
6
+ description: "Fetches a paginated list of product categories for a specific organization",
7
+ headers: HeaderSchema,
8
+ method: "GET",
9
+ operationId: "getProductCategories",
10
+ path: "/:organizationId/product-categories",
11
+ pathParams: OrganizationParams,
12
+ query: PaginationQuerySchema,
13
+ responses: {
14
+ 200: z.object({
15
+ list: z.array(z.union([ProductCategorySchema, LocalizedProductCategorySchema])),
16
+ meta: PaginationMetaSchema,
17
+ }),
18
+ 400: ErrorSchema,
19
+ 401: ErrorSchema,
20
+ },
21
+ summary: "Get Product Categories",
22
+ tags: ["ProductCategory"],
23
+ });
24
+ const createProductCategoryRoute = createApiRoute({
25
+ body: CreateProductCategorySchema,
26
+ description: "Creates a new product category for a specific organization",
27
+ headers: HeaderSchema,
28
+ method: "POST",
29
+ operationId: "createProductCategory",
30
+ path: "/:organizationId/product-categories",
31
+ pathParams: OrganizationParams,
32
+ responses: {
33
+ 201: ProductCategorySchema,
34
+ 400: ErrorSchema,
35
+ 401: ErrorSchema,
36
+ 404: ErrorSchema,
37
+ },
38
+ summary: "Create Product Category",
39
+ tags: ["ProductCategory"],
40
+ });
41
+ const getProductCategoryRoute = createApiRoute({
42
+ description: "Fetches a specific product category by ID",
43
+ headers: HeaderSchema,
44
+ method: "GET",
45
+ operationId: "getProductCategory",
46
+ path: "/:organizationId/product-categories/:id",
47
+ pathParams: OrganizationWithIdParams,
48
+ query: GetResourceQuerySchema,
49
+ responses: {
50
+ 200: z.union([ProductCategorySchema, LocalizedProductCategorySchema]),
51
+ 401: ErrorSchema,
52
+ 404: ErrorSchema,
53
+ },
54
+ summary: "Get Product Category",
55
+ tags: ["ProductCategory"],
56
+ });
57
+ const updateProductCategoryRoute = createApiRoute({
58
+ body: UpdateProductCategorySchema,
59
+ description: "Updates a specific product category by ID",
60
+ headers: HeaderSchema,
61
+ method: "PATCH",
62
+ operationId: "updateProductCategory",
63
+ path: "/:organizationId/product-categories/:id",
64
+ pathParams: OrganizationWithIdParams,
65
+ responses: {
66
+ 200: ProductCategorySchema,
67
+ 400: ErrorSchema,
68
+ 401: ErrorSchema,
69
+ 404: ErrorSchema,
70
+ },
71
+ summary: "Update Product Category",
72
+ tags: ["ProductCategory"],
73
+ });
74
+ const updateProductCategoryStatusRoute = createApiRoute({
75
+ description: "Sets the published status of an existing product category based on the operation (publish or unpublish)",
76
+ headers: HeaderSchema,
77
+ method: "POST",
78
+ operationId: "updateProductCategoryStatus",
79
+ path: "/:organizationId/product-categories/:id/status/:operation",
80
+ pathParams: z.object({
81
+ id: z.string().openapi({
82
+ description: "The organization ID",
83
+ example: "ckel0e8qw00004n5p5w6fznym",
84
+ param: {
85
+ in: "path",
86
+ name: "id",
87
+ },
88
+ }),
89
+ operation: z.enum(["publish", "unpublish"]).openapi({
90
+ description: "The operation to perform on the product category",
91
+ example: "publish",
92
+ param: {
93
+ in: "path",
94
+ name: "operation",
95
+ },
96
+ }),
97
+ organizationId: z.string().openapi({
98
+ description: "The organization ID",
99
+ example: "ckel0e8qw00004n5p5w6fznym",
100
+ param: {
101
+ in: "path",
102
+ name: "organizationId",
103
+ },
104
+ }),
105
+ }),
106
+ responses: {
107
+ 200: ProductCategorySchema,
108
+ 400: ErrorSchema,
109
+ 401: ErrorSchema,
110
+ 404: ErrorSchema,
111
+ },
112
+ summary: "Publish or Unpublish Product Category",
113
+ tags: ["ProductCategory"],
114
+ });
115
+ const deleteProductCategoryRoute = createApiRoute({
116
+ description: "Deletes a specific product category by ID",
117
+ headers: HeaderSchema,
118
+ method: "DELETE",
119
+ operationId: "deleteProductCategory",
120
+ path: "/:organizationId/product-categories/:id",
121
+ pathParams: OrganizationWithIdParams,
122
+ responses: {
123
+ 204: null,
124
+ 400: ErrorSchema,
125
+ 401: ErrorSchema,
126
+ 404: ErrorSchema,
127
+ },
128
+ summary: "Delete Product Category",
129
+ tags: ["ProductCategory"],
130
+ });
131
+ export const productCategoryRoute = {
132
+ getProductCategories: getProductCategoriesRoute,
133
+ createProductCategory: createProductCategoryRoute,
134
+ getProductCategory: getProductCategoryRoute,
135
+ updateProductCategory: updateProductCategoryRoute,
136
+ updateProductCategoryStatus: updateProductCategoryStatusRoute,
137
+ deleteProductCategory: deleteProductCategoryRoute,
138
+ };
139
+ //# sourceMappingURL=product-category.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-category.route.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/product-category/product-category.route.ts"],"names":[],"mappings":"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"}
@@ -1 +1,86 @@
1
- import{z as e}from"@hono/zod-openapi";import{validateRequiredForDefaultLocale as t}from"../../core/utils/zod.util";import{FileSchema as o}from"../file/file.schema";export const ProductCategorySchema=e.object({id:e.string().openapi({example:"clf9876543210abcdef",description:"ID of the product category"}),slug:e.string().openapi({example:"electronics",description:"Slug of the product category"}),image:o.nullable().optional().openapi({description:"Image of the product category"}),createdAt:e.date(),publishedAt:e.date().nullable().optional().openapi({description:"Timestamp when the product category was published"}),translations:e.array(e.object({locale:e.string().min(1,"Locale is required").openapi({example:"en-US",description:"Locale code for the translation"}),title:e.string().default("").openapi({example:"Electronics",description:"Name of the product category in the specified locale"}),description:e.string().max(6e3,"Maximum character limit is 6000").nullable().default("").optional().openapi({example:"A category for electronic devices.",description:"Description of the product category in the specified locale"})})).openapi({description:"List of translations for the product category"})}).openapi("ProductCategory");export const LocalizedProductCategorySchema=ProductCategorySchema.omit({translations:!0}).extend({title:e.string().default(""),description:e.string().default("")}).openapi("LocalizedProductCategory");export const CreateProductCategorySchema=ProductCategorySchema.pick({slug:!0,image:!0,translations:!0}).extend({defaultLocale:e.string().min(1,"Default locale is required").openapi({description:"The default locale for the product category"}),imageId:e.string().cuid().optional().openapi({description:"ID of the image for the product category"})}).superRefine(t("title")).openapi("CreateProductCategory");export const UpdateProductCategorySchema=ProductCategorySchema.pick({slug:!0,image:!0,translations:!0}).extend({defaultLocale:e.string().min(1,"Default locale is required").openapi({description:"The default locale for the product category"}),imageId:e.string().cuid().optional().nullable().openapi({description:"ID of the image for the product category"})}).partial().superRefine(t("title")).openapi("UpdateProductCategory");
1
+ import { z } from "@hono/zod-openapi";
2
+ import { validateRequiredForDefaultLocale } from "../../core/utils/zod.util";
3
+ import { FileSchema } from "../file/file.schema";
4
+ export const ProductCategorySchema = z
5
+ .object({
6
+ id: z.string().openapi({
7
+ example: "clf9876543210abcdef",
8
+ description: "ID of the product category",
9
+ }),
10
+ slug: z.string().openapi({
11
+ example: "electronics",
12
+ description: "Slug of the product category",
13
+ }),
14
+ image: FileSchema.nullable().optional().openapi({
15
+ description: "Image of the product category",
16
+ }),
17
+ createdAt: z.date(),
18
+ publishedAt: z.date().nullable().optional().openapi({
19
+ description: "Timestamp when the product category was published",
20
+ }),
21
+ translations: z
22
+ .array(z.object({
23
+ locale: z.string().min(1, "Locale is required").openapi({
24
+ example: "en-US",
25
+ description: "Locale code for the translation",
26
+ }),
27
+ title: z.string().default("").openapi({
28
+ example: "Electronics",
29
+ description: "Name of the product category in the specified locale",
30
+ }),
31
+ description: z
32
+ .string()
33
+ .max(6000, "Maximum character limit is 6000")
34
+ .nullable()
35
+ .default("")
36
+ .optional()
37
+ .openapi({
38
+ example: "A category for electronic devices.",
39
+ description: "Description of the product category in the specified locale",
40
+ }),
41
+ }))
42
+ .openapi({
43
+ description: "List of translations for the product category",
44
+ }),
45
+ })
46
+ .openapi("ProductCategory");
47
+ export const LocalizedProductCategorySchema = ProductCategorySchema.omit({
48
+ translations: true,
49
+ })
50
+ .extend({
51
+ title: z.string().default(""),
52
+ description: z.string().default(""),
53
+ })
54
+ .openapi("LocalizedProductCategory");
55
+ export const CreateProductCategorySchema = ProductCategorySchema.pick({
56
+ slug: true,
57
+ image: true,
58
+ translations: true,
59
+ })
60
+ .extend({
61
+ defaultLocale: z.string().min(1, "Default locale is required").openapi({
62
+ description: "The default locale for the product category",
63
+ }),
64
+ imageId: z.string().cuid().optional().openapi({
65
+ description: "ID of the image for the product category",
66
+ }),
67
+ })
68
+ .superRefine(validateRequiredForDefaultLocale("title"))
69
+ .openapi("CreateProductCategory");
70
+ export const UpdateProductCategorySchema = ProductCategorySchema.pick({
71
+ slug: true,
72
+ image: true,
73
+ translations: true,
74
+ })
75
+ .extend({
76
+ defaultLocale: z.string().min(1, "Default locale is required").openapi({
77
+ description: "The default locale for the product category",
78
+ }),
79
+ imageId: z.string().cuid().optional().nullable().openapi({
80
+ description: "ID of the image for the product category",
81
+ }),
82
+ })
83
+ .partial()
84
+ .superRefine(validateRequiredForDefaultLocale("title"))
85
+ .openapi("UpdateProductCategory");
86
+ //# sourceMappingURL=product-category.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-category.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/product-category/product-category.schema.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,14 @@ import { CreateProductCategorySchema, UpdateProductCategorySchema } from "../../
4
4
  declare class ProductCategoryService {
5
5
  private readonly prisma;
6
6
  constructor(prisma: PrismaClientType);
7
+ /**
8
+ * Find a product category by ID and organization ID
9
+ * @throws HttpException with 404 status if product category is not found
10
+ */
7
11
  private findProductCategory;
12
+ /**
13
+ * Create a new product category
14
+ */
8
15
  createProductCategory(organizationId: string, userId: string, body: z.infer<typeof CreateProductCategorySchema>): Promise<{
9
16
  id: string;
10
17
  slug: string;
@@ -23,6 +30,9 @@ declare class ProductCategoryService {
23
30
  } | null | undefined;
24
31
  publishedAt?: Date | null | undefined;
25
32
  }>;
33
+ /**
34
+ * Get a product category by ID
35
+ */
26
36
  getProductCategory(organizationId: string, id: string, query: {
27
37
  locale?: string | null;
28
38
  }): Promise<{
@@ -57,6 +67,9 @@ declare class ProductCategoryService {
57
67
  } | null | undefined;
58
68
  publishedAt?: Date | null | undefined;
59
69
  }>;
70
+ /**
71
+ * Get a paginated list of product categories
72
+ */
60
73
  getProductCategories(organizationId: string, query: {
61
74
  page?: number;
62
75
  limit?: number;
@@ -117,6 +130,9 @@ declare class ProductCategoryService {
117
130
  publishedAt?: Date | null | undefined;
118
131
  }[];
119
132
  }>;
133
+ /**
134
+ * Update a product category
135
+ */
120
136
  updateProductCategory(organizationId: string, id: string, userId: string, body: z.infer<typeof UpdateProductCategorySchema>): Promise<{
121
137
  id: string;
122
138
  slug: string;
@@ -135,6 +151,9 @@ declare class ProductCategoryService {
135
151
  } | null | undefined;
136
152
  publishedAt?: Date | null | undefined;
137
153
  }>;
154
+ /**
155
+ * Update product category status (publish/unpublish)
156
+ */
138
157
  updateProductCategoryStatus(organizationId: string, id: string, operation: "publish" | "unpublish", userId: string): Promise<{
139
158
  id: string;
140
159
  slug: string;
@@ -153,6 +172,9 @@ declare class ProductCategoryService {
153
172
  } | null | undefined;
154
173
  publishedAt?: Date | null | undefined;
155
174
  }>;
175
+ /**
176
+ * Delete a product category (soft delete)
177
+ */
156
178
  deleteProductCategory(organizationId: string, id: string, userId: string): Promise<void>;
157
179
  }
158
180
  export { ProductCategoryService };
@@ -1 +1,220 @@
1
- import{__awaiter as t}from"tslib";import{z as e}from"@hono/zod-openapi";import{HttpException as i}from"../../core/exceptions/http-exception";import{flattenTranslationData as r}from"../../core/utils/zod.util";import{LocalizedProductCategorySchema as o,PaginationMetaSchema as a,ProductCategorySchema as d}from"../../schemas";class n{constructor(t){this.prisma=t}findProductCategory(e,r,o){return t(this,void 0,void 0,function*(){const t=yield this.prisma.productCategory.findUnique({where:{id:e,organizationId:r,deletedAt:null},include:null==o?void 0:o.include});if(!t)throw new i(404,"Product category not found");return t})}createProductCategory(e,i,r){return t(this,void 0,void 0,function*(){const t=yield this.prisma.productCategory.create({data:{slug:r.slug,organizationId:e,createdBy:i,imageId:r.imageId,translations:{create:r.translations}},include:{translations:!0,image:!0}});return d.parse(t)})}getProductCategory(e,i,a){return t(this,void 0,void 0,function*(){const{locale:t}=a,n=yield this.findProductCategory(i,e,{include:{image:!0,translations:!t||{where:{locale:t}}}});return t?o.parse(r(n)):d.parse(n)})}getProductCategories(i,n){return t(this,void 0,void 0,function*(){const{page:t=1,limit:s=10,search:l,locale:u,published:c}=n,[p,g]=yield this.prisma.productCategory.paginate({orderBy:{priority:"asc"},where:Object.assign(Object.assign({organizationId:i,deletedAt:null},l&&{slug:{contains:l,mode:"insensitive"}}),c&&{publishedAt:{not:null}}),include:{image:!0,translations:!u||{where:{locale:u}}}}).withPages({page:t,limit:s});if(!u)return e.object({meta:a,list:e.array(d)}).parse({meta:g,list:p});const h=p.map(t=>r(t));return e.object({meta:a,list:e.array(o)}).parse({meta:g,list:h})})}updateProductCategory(e,i,r,o){return t(this,void 0,void 0,function*(){yield this.findProductCategory(i,e);const t=yield this.prisma.productCategory.update({where:{id:i,organizationId:e,deletedAt:null},data:{updatedBy:r,slug:o.slug,translations:{deleteMany:{},create:o.translations||[]},imageId:o.imageId},include:{image:!0,translations:!0}});return d.parse(t)})}updateProductCategoryStatus(e,i,r,o){return t(this,void 0,void 0,function*(){yield this.findProductCategory(i,e);const t=yield this.prisma.productCategory.update({where:{id:i,organizationId:e,deletedAt:null},data:{publishedAt:"publish"===r?new Date:null,publishedBy:"publish"===r?o:null,updatedBy:o},include:{image:!0,translations:!0}});return d.parse(t)})}deleteProductCategory(e,i,r){return t(this,void 0,void 0,function*(){yield this.findProductCategory(i,e),yield this.prisma.productCategory.update({where:{id:i,organizationId:e,deletedAt:null},data:{deletedAt:new Date,deletedBy:r}})})}}export{n as ProductCategoryService};
1
+ import { __awaiter } from "tslib";
2
+ import { z } from "@hono/zod-openapi";
3
+ import { HttpException } from "../../core/exceptions/http-exception";
4
+ import { flattenTranslationData } from "../../core/utils/zod.util";
5
+ import { LocalizedProductCategorySchema, PaginationMetaSchema, ProductCategorySchema, } from "../../schemas";
6
+ class ProductCategoryService {
7
+ constructor(prisma) {
8
+ this.prisma = prisma;
9
+ }
10
+ /**
11
+ * Find a product category by ID and organization ID
12
+ * @throws HttpException with 404 status if product category is not found
13
+ */
14
+ findProductCategory(id, organizationId, options) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const productCategory = yield this.prisma.productCategory.findUnique({
17
+ where: {
18
+ id,
19
+ organizationId,
20
+ deletedAt: null,
21
+ },
22
+ include: options === null || options === void 0 ? void 0 : options.include,
23
+ });
24
+ if (!productCategory) {
25
+ throw new HttpException(404, "Product category not found");
26
+ }
27
+ return productCategory;
28
+ });
29
+ }
30
+ /**
31
+ * Create a new product category
32
+ */
33
+ createProductCategory(organizationId, userId, body) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ // Create new product category
36
+ const productCategory = yield this.prisma.productCategory.create({
37
+ data: {
38
+ slug: body.slug,
39
+ organizationId,
40
+ createdBy: userId,
41
+ imageId: body.imageId,
42
+ translations: {
43
+ create: body.translations,
44
+ },
45
+ },
46
+ include: {
47
+ translations: true,
48
+ image: true,
49
+ },
50
+ });
51
+ return ProductCategorySchema.parse(productCategory);
52
+ });
53
+ }
54
+ /**
55
+ * Get a product category by ID
56
+ */
57
+ getProductCategory(organizationId, id, query) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ // Extract locale from query parameter
60
+ const { locale } = query;
61
+ const productCategory = yield this.findProductCategory(id, organizationId, {
62
+ include: {
63
+ image: true,
64
+ translations: locale
65
+ ? {
66
+ where: { locale },
67
+ }
68
+ : true,
69
+ },
70
+ });
71
+ if (!locale) {
72
+ return ProductCategorySchema.parse(productCategory);
73
+ }
74
+ // If locale is provided, flatten the translations data and use LocalizedProductCategorySchema
75
+ return LocalizedProductCategorySchema.parse(flattenTranslationData(productCategory));
76
+ });
77
+ }
78
+ /**
79
+ * Get a paginated list of product categories
80
+ */
81
+ getProductCategories(organizationId, query) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const { page = 1, limit = 10, search, locale, published } = query;
84
+ // Fetch product categories with pagination
85
+ const [list, meta] = yield this.prisma.productCategory
86
+ .paginate({
87
+ orderBy: {
88
+ priority: "asc",
89
+ },
90
+ where: Object.assign(Object.assign({ organizationId, deletedAt: null }, (search && {
91
+ slug: {
92
+ contains: search,
93
+ mode: "insensitive",
94
+ },
95
+ })), (published && {
96
+ publishedAt: {
97
+ not: null,
98
+ },
99
+ })),
100
+ include: {
101
+ image: true,
102
+ translations: locale
103
+ ? {
104
+ where: { locale },
105
+ }
106
+ : true,
107
+ },
108
+ })
109
+ .withPages({
110
+ page,
111
+ limit,
112
+ });
113
+ if (!locale) {
114
+ // Return standard response with ProductCategorySchema
115
+ return z
116
+ .object({
117
+ meta: PaginationMetaSchema,
118
+ list: z.array(ProductCategorySchema),
119
+ })
120
+ .parse({
121
+ meta,
122
+ list,
123
+ });
124
+ }
125
+ // Process the list for localization
126
+ const localizedList = list.map((item) => flattenTranslationData(item));
127
+ // Return localized response with LocalizedProductCategorySchema
128
+ return z
129
+ .object({
130
+ meta: PaginationMetaSchema,
131
+ list: z.array(LocalizedProductCategorySchema),
132
+ })
133
+ .parse({
134
+ meta,
135
+ list: localizedList,
136
+ });
137
+ });
138
+ }
139
+ /**
140
+ * Update a product category
141
+ */
142
+ updateProductCategory(organizationId, id, userId, body) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ // Fetch product category by id
145
+ yield this.findProductCategory(id, organizationId);
146
+ // Update product category
147
+ const updatedProductCategory = yield this.prisma.productCategory.update({
148
+ where: {
149
+ id,
150
+ organizationId,
151
+ deletedAt: null,
152
+ },
153
+ data: {
154
+ updatedBy: userId,
155
+ slug: body.slug,
156
+ translations: {
157
+ deleteMany: {},
158
+ create: body.translations || [],
159
+ },
160
+ imageId: body.imageId,
161
+ },
162
+ include: {
163
+ image: true,
164
+ translations: true,
165
+ },
166
+ });
167
+ return ProductCategorySchema.parse(updatedProductCategory);
168
+ });
169
+ }
170
+ /**
171
+ * Update product category status (publish/unpublish)
172
+ */
173
+ updateProductCategoryStatus(organizationId, id, operation, userId) {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ // Fetch the product category by id
176
+ yield this.findProductCategory(id, organizationId);
177
+ const updatedProductCategory = yield this.prisma.productCategory.update({
178
+ where: {
179
+ id,
180
+ organizationId,
181
+ deletedAt: null,
182
+ },
183
+ data: {
184
+ publishedAt: operation === "publish" ? new Date() : null,
185
+ publishedBy: operation === "publish" ? userId : null,
186
+ updatedBy: userId,
187
+ },
188
+ include: {
189
+ image: true,
190
+ translations: true,
191
+ },
192
+ });
193
+ return ProductCategorySchema.parse(updatedProductCategory);
194
+ });
195
+ }
196
+ /**
197
+ * Delete a product category (soft delete)
198
+ */
199
+ deleteProductCategory(organizationId, id, userId) {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ // Fetch product category by id
202
+ yield this.findProductCategory(id, organizationId);
203
+ // Soft delete product category
204
+ yield this.prisma.productCategory.update({
205
+ where: {
206
+ id,
207
+ organizationId,
208
+ deletedAt: null,
209
+ },
210
+ data: {
211
+ deletedAt: new Date(),
212
+ deletedBy: userId,
213
+ },
214
+ });
215
+ return;
216
+ });
217
+ }
218
+ }
219
+ export { ProductCategoryService };
220
+ //# sourceMappingURL=product-category.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-category.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/product-category/product-category.service.ts"],"names":[],"mappings":"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"}