@shophost/rest-api 2.0.32 → 2.0.34

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 -123
@@ -1 +1,141 @@
1
- import{__awaiter as t}from"tslib";import e,{isAxiosError as s}from"axios";import{logger as o}from"../../core/logging/pino";class r{constructor(t){this.apiKey=t,this.client=e.create({baseURL:"https://places.googleapis.com/v1",headers:{"Content-Type":"application/json","X-Goog-Api-Key":t}})}getPredictions(e,r){return t(this,void 0,void 0,function*(){var t,i,a;if(!e||""===e.trim()||e.length<3)return[];try{const{data:t}=yield this.client.post("/places:autocomplete",{input:e,locationBias:{circle:{center:{latitude:37.7937,longitude:-122.3965},radius:r||1e5}}});return t.suggestions.map(({placePrediction:t})=>({placeId:t.placeId,text:t.text.text,addressLineOne:t.structuredFormat.mainText.text,addressLineTwo:t.structuredFormat.secondaryText.text}))}catch(r){throw s(r)?o.error({status:null===(t=r.response)||void 0===t?void 0:t.status,statusText:null===(i=r.response)||void 0===i?void 0:i.statusText,data:null===(a=r.response)||void 0===a?void 0:a.data,query:e},"Google Places Autocomplete request failed"):o.error({err:r,query:e},"Unexpected error during Places Autocomplete"),r}})}findDistanceBetweenCoordinates(e,s){return t(this,void 0,void 0,function*(){const t=t=>t*(Math.PI/180),o=t(s.latitude-e.latitude),r=t(s.longitude-e.longitude),i=t(e.latitude),a=t(s.latitude),d=Math.sin(o/2)*Math.sin(o/2)+Math.cos(i)*Math.cos(a)*Math.sin(r/2)*Math.sin(r/2);return 2*Math.atan2(Math.sqrt(d),Math.sqrt(1-d))*6371})}getPlaceDetails(e){return t(this,void 0,void 0,function*(){var t,r,i;let a;try{a=(yield this.client.get(`/places/${e}`,{headers:{"X-Goog-FieldMask":"addressComponents,adrFormatAddress,formattedAddress,location,plusCode,postalAddress,shortFormattedAddress,types"}})).data}catch(a){throw s(a)?o.error({status:null===(t=a.response)||void 0===t?void 0:t.status,statusText:null===(r=a.response)||void 0===r?void 0:r.statusText,data:null===(i=a.response)||void 0===i?void 0:i.data,placeId:e},"Google Place Details request failed"):o.error({err:a,placeId:e},"Unexpected error during Place Details"),a}const d={addressLineOne:"",zipCode:"",country:"",city:"",latitude:a.location.latitude,longitude:a.location.longitude};if(!a.addressComponents)return d;for(const t of a.addressComponents)t.types.includes("street_number")&&(d.addressLineOne=t.shortText),t.types.includes("route")&&(d.addressLineOne=t.shortText+" "+d.addressLineOne),t.types.includes("postal_code")&&(d.zipCode=t.shortText),t.types.includes("country")&&(d.country=t.shortText),t.types.includes("locality")&&(d.city=t.longText);return d})}}export{r as LocationService};
1
+ import { __awaiter } from "tslib";
2
+ import axios, { isAxiosError } from "axios";
3
+ import { logger } from "../../core/logging/pino";
4
+ class LocationService {
5
+ constructor(apiKey) {
6
+ this.apiKey = apiKey;
7
+ this.client = axios.create({
8
+ baseURL: "https://places.googleapis.com/v1",
9
+ headers: {
10
+ "Content-Type": "application/json",
11
+ "X-Goog-Api-Key": apiKey,
12
+ },
13
+ });
14
+ }
15
+ /**
16
+ * Get a list of places for autocompletion based on a search query
17
+ */
18
+ getPredictions(query, radius) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ var _a, _b, _c;
21
+ if (!query || query.trim() === "" || query.length < 3) {
22
+ return [];
23
+ }
24
+ try {
25
+ const { data } = yield this.client.post("/places:autocomplete", {
26
+ input: query,
27
+ locationBias: {
28
+ circle: {
29
+ center: {
30
+ latitude: 37.7937,
31
+ longitude: -122.3965,
32
+ },
33
+ radius: radius || 100000,
34
+ },
35
+ },
36
+ });
37
+ return data.suggestions.map(({ placePrediction }) => ({
38
+ placeId: placePrediction.placeId,
39
+ text: placePrediction.text.text,
40
+ addressLineOne: placePrediction.structuredFormat.mainText.text,
41
+ addressLineTwo: placePrediction.structuredFormat.secondaryText.text,
42
+ }));
43
+ }
44
+ catch (error) {
45
+ if (isAxiosError(error)) {
46
+ logger.error({
47
+ status: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
48
+ statusText: (_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText,
49
+ data: (_c = error.response) === null || _c === void 0 ? void 0 : _c.data,
50
+ query,
51
+ }, "Google Places Autocomplete request failed");
52
+ }
53
+ else {
54
+ logger.error({ err: error, query }, "Unexpected error during Places Autocomplete");
55
+ }
56
+ throw error;
57
+ }
58
+ });
59
+ }
60
+ findDistanceBetweenCoordinates(from, to) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ // Helper function to convert degrees to radians
63
+ const toRadians = (degrees) => degrees * (Math.PI / 180);
64
+ // Earth's radius in kilometers
65
+ const earthRadiusKm = 6371;
66
+ // Convert latitude and longitude differences to radians
67
+ const dLat = toRadians(to.latitude - from.latitude);
68
+ const dLon = toRadians(to.longitude - from.longitude);
69
+ // Convert starting coordinates to radians
70
+ const lat1 = toRadians(from.latitude);
71
+ const lat2 = toRadians(to.latitude);
72
+ // Haversine formula
73
+ const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
74
+ Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2) * Math.sin(dLon / 2);
75
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
76
+ // Calculate the distance
77
+ const distance = earthRadiusKm * c;
78
+ return distance;
79
+ });
80
+ }
81
+ getPlaceDetails(placeId) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ var _a, _b, _c;
84
+ let data;
85
+ try {
86
+ const response = yield this.client.get(`/places/${placeId}`, {
87
+ headers: {
88
+ "X-Goog-FieldMask": "addressComponents,adrFormatAddress,formattedAddress,location,plusCode,postalAddress,shortFormattedAddress,types",
89
+ },
90
+ });
91
+ data = response.data;
92
+ }
93
+ catch (error) {
94
+ if (isAxiosError(error)) {
95
+ logger.error({
96
+ status: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
97
+ statusText: (_b = error.response) === null || _b === void 0 ? void 0 : _b.statusText,
98
+ data: (_c = error.response) === null || _c === void 0 ? void 0 : _c.data,
99
+ placeId,
100
+ }, "Google Place Details request failed");
101
+ }
102
+ else {
103
+ logger.error({ err: error, placeId }, "Unexpected error during Place Details");
104
+ }
105
+ throw error;
106
+ }
107
+ const result = {
108
+ addressLineOne: "",
109
+ zipCode: "",
110
+ country: "",
111
+ city: "",
112
+ latitude: data.location.latitude,
113
+ longitude: data.location.longitude,
114
+ };
115
+ if (!data.addressComponents) {
116
+ return result;
117
+ }
118
+ for (const component of data.addressComponents) {
119
+ if (component.types.includes("street_number")) {
120
+ result.addressLineOne = component.shortText;
121
+ }
122
+ if (component.types.includes("route")) {
123
+ result.addressLineOne =
124
+ component.shortText + " " + result.addressLineOne;
125
+ }
126
+ if (component.types.includes("postal_code")) {
127
+ result.zipCode = component.shortText;
128
+ }
129
+ if (component.types.includes("country")) {
130
+ result.country = component.shortText;
131
+ }
132
+ if (component.types.includes("locality")) {
133
+ result.city = component.longText;
134
+ }
135
+ }
136
+ return result;
137
+ });
138
+ }
139
+ }
140
+ export { LocationService };
141
+ //# sourceMappingURL=location.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"location.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/location/location.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1,53 @@
1
- import{__awaiter as e}from"tslib";import{createApiRouter as a}from"../../core/hono/hono";import{manufacturerRoute as r}from"./manufacturer.route";import{ManufacturerService as n}from"./manufacturer.service";export const buildManufacturerHandler=t=>{const i=a();return i.openapi(r.createManufacturer,a=>e(void 0,void 0,void 0,function*(){const e=a.get("auth"),r=a.req.valid("param"),i=a.req.valid("json"),o=yield e.isGranted("create"),d=new n(t),u=yield d.createManufacturer(r.organizationId,o.id,i);return a.json(u,201)})),i.openapi(r.getManufacturer,a=>e(void 0,void 0,void 0,function*(){const e=a.get("auth"),r=a.req.valid("param"),i=a.req.valid("query");yield e.isGranted("read");const o=new n(t),d=yield o.getManufacturer(r.organizationId,r.id,{locale:i.locale||null});return a.json(d,200)})),i.openapi(r.getManufacturers,a=>e(void 0,void 0,void 0,function*(){const e=a.get("auth"),r=a.req.valid("param"),i=a.req.valid("query");yield e.isGranted("read");const o=new n(t),d=yield o.getManufacturers(r.organizationId,Object.assign(Object.assign({},i),{locale:i.locale||null}));return a.json(d,200)})),i.openapi(r.updateManufacturer,a=>e(void 0,void 0,void 0,function*(){const e=a.get("auth"),r=a.req.valid("param"),i=a.req.valid("json"),o=yield e.isGranted("update"),d=new n(t),u=yield d.updateManufacturer(r.organizationId,r.id,o.id,i);return a.json(u,200)})),i.openapi(r.deleteManufacturer,a=>e(void 0,void 0,void 0,function*(){const e=a.get("auth"),r=a.req.valid("param"),i=yield e.isGranted("delete"),o=new n(t);return yield o.deleteManufacturer(r.organizationId,r.id,i.id),a.body(null,204)})),i};
1
+ import { __awaiter } from "tslib";
2
+ import { createApiRouter } from "../../core/hono/hono";
3
+ import { manufacturerRoute } from "./manufacturer.route";
4
+ import { ManufacturerService } from "./manufacturer.service";
5
+ export const buildManufacturerHandler = (prisma) => {
6
+ const app = createApiRouter();
7
+ app.openapi(manufacturerRoute.createManufacturer, (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 ManufacturerService(prisma);
13
+ const manufacturer = yield service.createManufacturer(params.organizationId, user.id, body);
14
+ return c.json(manufacturer, 201);
15
+ }));
16
+ app.openapi(manufacturerRoute.getManufacturer, (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 ManufacturerService(prisma);
22
+ const manufacturer = yield service.getManufacturer(params.organizationId, params.id, { locale: query.locale || null });
23
+ return c.json(manufacturer, 200);
24
+ }));
25
+ app.openapi(manufacturerRoute.getManufacturers, (c) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const auth = c.get("auth");
27
+ const params = c.req.valid("param");
28
+ const query = c.req.valid("query");
29
+ yield auth.isGranted("read");
30
+ const service = new ManufacturerService(prisma);
31
+ const result = yield service.getManufacturers(params.organizationId, Object.assign(Object.assign({}, query), { locale: query.locale || null }));
32
+ return c.json(result, 200);
33
+ }));
34
+ app.openapi(manufacturerRoute.updateManufacturer, (c) => __awaiter(void 0, void 0, void 0, function* () {
35
+ const auth = c.get("auth");
36
+ const params = c.req.valid("param");
37
+ const body = c.req.valid("json");
38
+ const user = yield auth.isGranted("update");
39
+ const service = new ManufacturerService(prisma);
40
+ const updatedManufacturer = yield service.updateManufacturer(params.organizationId, params.id, user.id, body);
41
+ return c.json(updatedManufacturer, 200);
42
+ }));
43
+ app.openapi(manufacturerRoute.deleteManufacturer, (c) => __awaiter(void 0, void 0, void 0, function* () {
44
+ const auth = c.get("auth");
45
+ const params = c.req.valid("param");
46
+ const user = yield auth.isGranted("delete");
47
+ const service = new ManufacturerService(prisma);
48
+ yield service.deleteManufacturer(params.organizationId, params.id, user.id);
49
+ return c.body(null, 204);
50
+ }));
51
+ return app;
52
+ };
53
+ //# sourceMappingURL=manufacturer.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manufacturer.handler.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/manufacturer/manufacturer.handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1,97 @@
1
- import{z as a}from"@hono/zod-openapi";import{createApiRoute as r}from"../../core/hono/hono";import{ErrorSchema as e,HeaderSchema as t,OrganizationParams as u,OrganizationWithIdParams as n,PaginationMetaSchema as o,PaginationQuerySchema as s}from"../../schemas";import{GetResourceQuerySchema as c}from"../../schemas/queries.schema";import{CreateManufacturerSchema as i,LocalizedManufacturerSchema as m,ManufacturerSchema as f,UpdateManufacturerSchema as p}from"./manufacturer.schema";const d=r({description:"Fetches a paginated list of manufacturers for a specific organization",headers:t,method:"GET",operationId:"getManufacturers",path:"/:organizationId/manufacturers",pathParams:u,query:s,responses:{200:a.object({list:a.array(a.union([f,m])),meta:o}),400:e,401:e},summary:"Get Manufacturers",tags:["Manufacturer"]}),h=r({body:i,description:"Creates a new manufacturer for a specific organization",headers:t,method:"POST",operationId:"createManufacturer",path:"/:organizationId/manufacturers",pathParams:u,responses:{201:f,400:e,401:e,404:e},summary:"Create Manufacturer",tags:["Manufacturer"]}),M=r({headers:t,method:"GET",operationId:"getManufacturer",path:"/:organizationId/manufacturers/:id",pathParams:n,query:c,responses:{200:a.union([f,m]),401:e,404:e},summary:"Get Manufacturer",tags:["Manufacturer"]}),g=r({body:p,description:"Updates an existing manufacturer",headers:t,method:"PUT",operationId:"updateManufacturer",path:"/:organizationId/manufacturers/:id",pathParams:n,responses:{200:f,400:e,401:e,404:e},summary:"Update Manufacturer",tags:["Manufacturer"]}),y=r({description:"Soft deletes a manufacturer",headers:t,method:"DELETE",operationId:"deleteManufacturer",path:"/:organizationId/manufacturers/:id",pathParams:n,responses:{204:null,400:e,401:e,404:e},summary:"Delete Manufacturer",tags:["Manufacturer"]});export const manufacturerRoute={getManufacturers:d,createManufacturer:h,getManufacturer:M,updateManufacturer:g,deleteManufacturer:y};
1
+ import { z } from "@hono/zod-openapi";
2
+ import { createApiRoute } from "../../core/hono/hono";
3
+ import { ErrorSchema, HeaderSchema, OrganizationParams, OrganizationWithIdParams, PaginationMetaSchema, PaginationQuerySchema, } from "../../schemas";
4
+ import { GetResourceQuerySchema } from "../../schemas/queries.schema";
5
+ import { CreateManufacturerSchema, LocalizedManufacturerSchema, ManufacturerSchema, UpdateManufacturerSchema, } from "./manufacturer.schema";
6
+ const getManufacturersRoute = createApiRoute({
7
+ description: "Fetches a paginated list of manufacturers for a specific organization",
8
+ headers: HeaderSchema,
9
+ method: "GET",
10
+ operationId: "getManufacturers",
11
+ path: "/:organizationId/manufacturers",
12
+ pathParams: OrganizationParams,
13
+ query: PaginationQuerySchema,
14
+ responses: {
15
+ 200: z.object({
16
+ list: z.array(z.union([ManufacturerSchema, LocalizedManufacturerSchema])),
17
+ meta: PaginationMetaSchema,
18
+ }),
19
+ 400: ErrorSchema,
20
+ 401: ErrorSchema,
21
+ },
22
+ summary: "Get Manufacturers",
23
+ tags: ["Manufacturer"],
24
+ });
25
+ const createManufacturerRoute = createApiRoute({
26
+ body: CreateManufacturerSchema,
27
+ description: "Creates a new manufacturer for a specific organization",
28
+ headers: HeaderSchema,
29
+ method: "POST",
30
+ operationId: "createManufacturer",
31
+ path: "/:organizationId/manufacturers",
32
+ pathParams: OrganizationParams,
33
+ responses: {
34
+ 201: ManufacturerSchema,
35
+ 400: ErrorSchema,
36
+ 401: ErrorSchema,
37
+ 404: ErrorSchema,
38
+ },
39
+ summary: "Create Manufacturer",
40
+ tags: ["Manufacturer"],
41
+ });
42
+ const getManufacturerRoute = createApiRoute({
43
+ headers: HeaderSchema,
44
+ method: "GET",
45
+ operationId: "getManufacturer",
46
+ path: "/:organizationId/manufacturers/:id",
47
+ pathParams: OrganizationWithIdParams,
48
+ query: GetResourceQuerySchema,
49
+ responses: {
50
+ 200: z.union([ManufacturerSchema, LocalizedManufacturerSchema]),
51
+ 401: ErrorSchema,
52
+ 404: ErrorSchema,
53
+ },
54
+ summary: "Get Manufacturer",
55
+ tags: ["Manufacturer"],
56
+ });
57
+ const updateManufacturerRoute = createApiRoute({
58
+ body: UpdateManufacturerSchema,
59
+ description: "Updates an existing manufacturer",
60
+ headers: HeaderSchema,
61
+ method: "PUT",
62
+ operationId: "updateManufacturer",
63
+ path: "/:organizationId/manufacturers/:id",
64
+ pathParams: OrganizationWithIdParams,
65
+ responses: {
66
+ 200: ManufacturerSchema,
67
+ 400: ErrorSchema,
68
+ 401: ErrorSchema,
69
+ 404: ErrorSchema,
70
+ },
71
+ summary: "Update Manufacturer",
72
+ tags: ["Manufacturer"],
73
+ });
74
+ const deleteManufacturerRoute = createApiRoute({
75
+ description: "Soft deletes a manufacturer",
76
+ headers: HeaderSchema,
77
+ method: "DELETE",
78
+ operationId: "deleteManufacturer",
79
+ path: "/:organizationId/manufacturers/:id",
80
+ pathParams: OrganizationWithIdParams,
81
+ responses: {
82
+ 204: null,
83
+ 400: ErrorSchema,
84
+ 401: ErrorSchema,
85
+ 404: ErrorSchema,
86
+ },
87
+ summary: "Delete Manufacturer",
88
+ tags: ["Manufacturer"],
89
+ });
90
+ export const manufacturerRoute = {
91
+ getManufacturers: getManufacturersRoute,
92
+ createManufacturer: createManufacturerRoute,
93
+ getManufacturer: getManufacturerRoute,
94
+ updateManufacturer: updateManufacturerRoute,
95
+ deleteManufacturer: deleteManufacturerRoute,
96
+ };
97
+ //# sourceMappingURL=manufacturer.route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manufacturer.route.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/manufacturer/manufacturer.route.ts"],"names":[],"mappings":"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"}
@@ -1 +1,125 @@
1
- import{z as e}from"@hono/zod-openapi";import{validateRequiredForDefaultLocale as a}from"../../core/utils/zod.util";import{FileSchema as o}from"../file/file.schema";export const ManufacturerSchema=e.object({id:e.string().openapi({example:"clf9876543210abcdef",description:"ID of the manufacturer"}),name:e.string().openapi({example:"Tech Innovators Inc.",description:"Name of the manufacturer"}),logo:o.nullable().optional().openapi({description:"Logo of the manufacturer"}),createdAt:e.date(),translations:e.array(e.object({locale:e.string().min(1,"Locale is required").openapi({example:"en-US",description:"Locale code for the translation"}),about:e.string().max(6e3,"Maximum character limit is 6000").nullable().optional().openapi({example:"Tech Innovators Inc. is a technology company.",description:"Description about the manufacturer in the specified locale"})})).optional().openapi({description:"List of translations for the manufacturer"})}).openapi("Manufacturer");export const LocalizedManufacturerSchema=ManufacturerSchema.omit({translations:!0}).extend({about:e.string().nullable().optional().default("")}).openapi("LocalizedManufacturer");export const CreateManufacturerSchema=e.object({name:e.string().min(1,"Name is required").openapi({example:"Apple Inc.",description:"Name of the manufacturer"}),defaultLocale:e.string().min(1,"Default locale is required").openapi({example:"en-US",description:"The default locale for the manufacturer"}),logo:o.nullable().optional().openapi({description:"Logo of the manufacturer"}),translations:e.array(e.object({locale:e.string().min(1,"Locale is required").openapi({example:"en-US",description:"Locale code for the translation"}),about:e.string().max(6e3,"Maximum character limit is 6000").nullable().optional().openapi({example:"Apple Inc. is a multinational technology company.",description:"Description about the manufacturer in the specified locale"})})).min(1,"Translations are required").openapi({description:"List of translations for the manufacturer"}),logoId:e.string().optional().openapi({example:"clf9876543210abcdef",description:"ID reference to the manufacturer's logo file"})}).superRefine(a("about")).openapi("CreateManufacturer");export const UpdateManufacturerSchema=e.object({name:e.string().min(1,"Name is required").optional().openapi({example:"Apple Inc. Updated",description:"Name of the manufacturer"}),logo:o.nullable().optional().openapi({description:"Logo of the manufacturer"}),defaultLocale:e.string().min(1,"Default locale is required").openapi({description:"The default locale for the manufacturer"}),logoId:e.string().nullable().optional().openapi({example:"clf9876543210abcdef",description:"ID reference to the manufacturer's logo file"}),translations:e.array(e.object({locale:e.string().min(1,"Locale is required").openapi({example:"en-US",description:"Locale code for the translation"}),about:e.string().max(6e3,"Maximum character limit is 6000").nullable().optional().openapi({example:"Apple Inc. is a multinational technology company.",description:"Description about the manufacturer in the specified locale"})})).optional().openapi({description:"List of translations for the manufacturer"})}).openapi("UpdateManufacturer");
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 ManufacturerSchema = z
5
+ .object({
6
+ id: z.string().openapi({
7
+ example: "clf9876543210abcdef",
8
+ description: "ID of the manufacturer",
9
+ }),
10
+ name: z.string().openapi({
11
+ example: "Tech Innovators Inc.",
12
+ description: "Name of the manufacturer",
13
+ }),
14
+ logo: FileSchema.nullable()
15
+ .optional()
16
+ .openapi({ description: "Logo of the manufacturer" }),
17
+ createdAt: z.date(),
18
+ translations: z
19
+ .array(z.object({
20
+ locale: z.string().min(1, "Locale is required").openapi({
21
+ example: "en-US",
22
+ description: "Locale code for the translation",
23
+ }),
24
+ about: z
25
+ .string()
26
+ .max(6000, "Maximum character limit is 6000")
27
+ .nullable()
28
+ .optional()
29
+ .openapi({
30
+ example: "Tech Innovators Inc. is a technology company.",
31
+ description: "Description about the manufacturer in the specified locale",
32
+ }),
33
+ }))
34
+ .optional()
35
+ .openapi({
36
+ description: "List of translations for the manufacturer",
37
+ }),
38
+ })
39
+ .openapi("Manufacturer");
40
+ export const LocalizedManufacturerSchema = ManufacturerSchema.omit({
41
+ translations: true,
42
+ })
43
+ .extend({
44
+ about: z.string().nullable().optional().default(""),
45
+ })
46
+ .openapi("LocalizedManufacturer");
47
+ export const CreateManufacturerSchema = z
48
+ .object({
49
+ name: z.string().min(1, "Name is required").openapi({
50
+ example: "Apple Inc.",
51
+ description: "Name of the manufacturer",
52
+ }),
53
+ defaultLocale: z.string().min(1, "Default locale is required").openapi({
54
+ example: "en-US",
55
+ description: "The default locale for the manufacturer",
56
+ }),
57
+ logo: FileSchema.nullable().optional().openapi({
58
+ description: "Logo of the manufacturer",
59
+ }),
60
+ translations: z
61
+ .array(z.object({
62
+ locale: z.string().min(1, "Locale is required").openapi({
63
+ example: "en-US",
64
+ description: "Locale code for the translation",
65
+ }),
66
+ about: z
67
+ .string()
68
+ .max(6000, "Maximum character limit is 6000")
69
+ .nullable()
70
+ .optional()
71
+ .openapi({
72
+ example: "Apple Inc. is a multinational technology company.",
73
+ description: "Description about the manufacturer in the specified locale",
74
+ }),
75
+ }))
76
+ .min(1, "Translations are required")
77
+ .openapi({
78
+ description: "List of translations for the manufacturer",
79
+ }),
80
+ logoId: z.string().optional().openapi({
81
+ example: "clf9876543210abcdef",
82
+ description: "ID reference to the manufacturer's logo file",
83
+ }),
84
+ })
85
+ .superRefine(validateRequiredForDefaultLocale("about"))
86
+ .openapi("CreateManufacturer");
87
+ export const UpdateManufacturerSchema = z
88
+ .object({
89
+ name: z.string().min(1, "Name is required").optional().openapi({
90
+ example: "Apple Inc. Updated",
91
+ description: "Name of the manufacturer",
92
+ }),
93
+ logo: FileSchema.nullable().optional().openapi({
94
+ description: "Logo of the manufacturer",
95
+ }),
96
+ defaultLocale: z.string().min(1, "Default locale is required").openapi({
97
+ description: "The default locale for the manufacturer",
98
+ }),
99
+ logoId: z.string().nullable().optional().openapi({
100
+ example: "clf9876543210abcdef",
101
+ description: "ID reference to the manufacturer's logo file",
102
+ }),
103
+ translations: z
104
+ .array(z.object({
105
+ locale: z.string().min(1, "Locale is required").openapi({
106
+ example: "en-US",
107
+ description: "Locale code for the translation",
108
+ }),
109
+ about: z
110
+ .string()
111
+ .max(6000, "Maximum character limit is 6000")
112
+ .nullable()
113
+ .optional()
114
+ .openapi({
115
+ example: "Apple Inc. is a multinational technology company.",
116
+ description: "Description about the manufacturer in the specified locale",
117
+ }),
118
+ }))
119
+ .optional()
120
+ .openapi({
121
+ description: "List of translations for the manufacturer",
122
+ }),
123
+ })
124
+ .openapi("UpdateManufacturer");
125
+ //# sourceMappingURL=manufacturer.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manufacturer.schema.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/manufacturer/manufacturer.schema.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,14 @@ import { CreateManufacturerSchema, UpdateManufacturerSchema } from "../../schema
4
4
  declare class ManufacturerService {
5
5
  private readonly prisma;
6
6
  constructor(prisma: PrismaClientType);
7
+ /**
8
+ * Find a manufacturer by ID and organization ID
9
+ * @throws HttpException with 404 status if manufacturer is not found
10
+ */
7
11
  private findManufacturer;
12
+ /**
13
+ * Create a new manufacturer
14
+ */
8
15
  createManufacturer(organizationId: string, userId: string, body: z.infer<typeof CreateManufacturerSchema>): Promise<{
9
16
  id: string;
10
17
  name: string;
@@ -21,6 +28,9 @@ declare class ManufacturerService {
21
28
  about?: string | null | undefined;
22
29
  }[] | undefined;
23
30
  }>;
31
+ /**
32
+ * Get a manufacturer by ID
33
+ */
24
34
  getManufacturer(organizationId: string, id: string, query: {
25
35
  locale?: string | null;
26
36
  }): Promise<{
@@ -51,6 +61,9 @@ declare class ManufacturerService {
51
61
  filename: string;
52
62
  } | null | undefined;
53
63
  }>;
64
+ /**
65
+ * Get a paginated list of manufacturers
66
+ */
54
67
  getManufacturers(organizationId: string, query: {
55
68
  page?: number;
56
69
  limit?: number;
@@ -106,6 +119,9 @@ declare class ManufacturerService {
106
119
  } | null | undefined;
107
120
  }[];
108
121
  }>;
122
+ /**
123
+ * Update a manufacturer
124
+ */
109
125
  updateManufacturer(organizationId: string, id: string, userId: string, body: z.infer<typeof UpdateManufacturerSchema>): Promise<{
110
126
  id: string;
111
127
  name: string;
@@ -122,6 +138,9 @@ declare class ManufacturerService {
122
138
  about?: string | null | undefined;
123
139
  }[] | undefined;
124
140
  }>;
141
+ /**
142
+ * Delete a manufacturer (soft delete)
143
+ */
125
144
  deleteManufacturer(organizationId: string, id: string, userId: string): Promise<void>;
126
145
  }
127
146
  export { ManufacturerService };