@shophost/rest-api 2.0.32 → 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 -123
@@ -1 +1,190 @@
1
- import{__awaiter as e}from"tslib";import{z as t}from"@hono/zod-openapi";import{HttpException as a}from"../../core/exceptions/http-exception";import{flattenTranslationData as r}from"../../core/utils/zod.util";import{LocalizedManufacturerSchema as i,ManufacturerSchema as n,PaginationMetaSchema as o}from"../../schemas";class d{constructor(e){this.prisma=e}findManufacturer(t,r,i){return e(this,void 0,void 0,function*(){const e=yield this.prisma.manufacturer.findUnique({where:{id:t,organizationId:r,deletedAt:null},include:null==i?void 0:i.include});if(!e)throw new a(404,"Manufacturer not found");return e})}createManufacturer(t,a,r){return e(this,void 0,void 0,function*(){const e=yield this.prisma.manufacturer.create({data:{name:r.name,organizationId:t,createdBy:a,logoId:r.logoId,translations:{create:r.translations}},include:{translations:!0,logo:!0}});return n.parse(e)})}getManufacturer(t,a,o){return e(this,void 0,void 0,function*(){const{locale:e}=o,d=yield this.findManufacturer(a,t,{include:{logo:!0,translations:!e||{where:{locale:e}}}});return e?i.parse(r(d)):n.parse(d)})}getManufacturers(a,d){return e(this,void 0,void 0,function*(){const{page:e=1,limit:s=10,search:u,locale:l}=d,[c,m]=yield this.prisma.manufacturer.paginate({orderBy:{createdAt:"desc"},where:Object.assign({organizationId:a,deletedAt:null},u&&{name:{contains:u,mode:"insensitive"}}),include:{logo:!0,translations:!l||{where:{locale:l}}}}).withPages({page:e,limit:s});if(!l)return t.object({meta:o,list:t.array(n)}).parse({meta:m,list:c});const f=c.map(e=>r(e));return t.object({meta:o,list:t.array(i)}).parse({meta:m,list:f})})}updateManufacturer(t,a,r,i){return e(this,void 0,void 0,function*(){yield this.findManufacturer(a,t);const e=yield this.prisma.manufacturer.update({where:{id:a,organizationId:t,deletedAt:null},data:{updatedBy:r,name:i.name,translations:{deleteMany:{},create:i.translations||[]},logoId:i.logoId},include:{logo:!0,translations:!0}});return n.parse(e)})}deleteManufacturer(t,a,r){return e(this,void 0,void 0,function*(){yield this.findManufacturer(a,t),yield this.prisma.manufacturer.update({where:{id:a,organizationId:t,deletedAt:null},data:{deletedAt:new Date,deletedBy:r}})})}}export{d as ManufacturerService};
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 { LocalizedManufacturerSchema, ManufacturerSchema, PaginationMetaSchema, } from "../../schemas";
6
+ class ManufacturerService {
7
+ constructor(prisma) {
8
+ this.prisma = prisma;
9
+ }
10
+ /**
11
+ * Find a manufacturer by ID and organization ID
12
+ * @throws HttpException with 404 status if manufacturer is not found
13
+ */
14
+ findManufacturer(id, organizationId, options) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const manufacturer = yield this.prisma.manufacturer.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 (!manufacturer) {
25
+ throw new HttpException(404, "Manufacturer not found");
26
+ }
27
+ return manufacturer;
28
+ });
29
+ }
30
+ /**
31
+ * Create a new manufacturer
32
+ */
33
+ createManufacturer(organizationId, userId, body) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ // Create new manufacturer
36
+ const manufacturer = yield this.prisma.manufacturer.create({
37
+ data: {
38
+ name: body.name,
39
+ organizationId,
40
+ createdBy: userId,
41
+ logoId: body.logoId,
42
+ translations: {
43
+ create: body.translations,
44
+ },
45
+ },
46
+ include: {
47
+ translations: true,
48
+ logo: true,
49
+ },
50
+ });
51
+ return ManufacturerSchema.parse(manufacturer);
52
+ });
53
+ }
54
+ /**
55
+ * Get a manufacturer by ID
56
+ */
57
+ getManufacturer(organizationId, id, query) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ // Extract locale from query parameter
60
+ const { locale } = query;
61
+ const manufacturer = yield this.findManufacturer(id, organizationId, {
62
+ include: {
63
+ logo: true,
64
+ translations: locale
65
+ ? {
66
+ where: { locale },
67
+ }
68
+ : true,
69
+ },
70
+ });
71
+ if (!locale) {
72
+ return ManufacturerSchema.parse(manufacturer);
73
+ }
74
+ // If locale is provided, flatten the translations data and use LocalizedManufacturerSchema
75
+ return LocalizedManufacturerSchema.parse(flattenTranslationData(manufacturer));
76
+ });
77
+ }
78
+ /**
79
+ * Get a paginated list of manufacturers
80
+ */
81
+ getManufacturers(organizationId, query) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const { page = 1, limit = 10, search, locale } = query;
84
+ // Fetch manufacturers with pagination
85
+ const [list, meta] = yield this.prisma.manufacturer
86
+ .paginate({
87
+ orderBy: {
88
+ createdAt: "desc",
89
+ },
90
+ where: Object.assign({ organizationId, deletedAt: null }, (search && {
91
+ name: {
92
+ contains: search,
93
+ mode: "insensitive",
94
+ },
95
+ })),
96
+ include: {
97
+ logo: true,
98
+ translations: locale
99
+ ? {
100
+ where: { locale },
101
+ }
102
+ : true,
103
+ },
104
+ })
105
+ .withPages({
106
+ page,
107
+ limit,
108
+ });
109
+ if (!locale) {
110
+ // Return standard response with ManufacturerSchema
111
+ return z
112
+ .object({
113
+ meta: PaginationMetaSchema,
114
+ list: z.array(ManufacturerSchema),
115
+ })
116
+ .parse({
117
+ meta,
118
+ list,
119
+ });
120
+ }
121
+ // Process the list for localization
122
+ const localizedList = list.map((item) => flattenTranslationData(item));
123
+ // Return localized response with LocalizedManufacturerSchema
124
+ return z
125
+ .object({
126
+ meta: PaginationMetaSchema,
127
+ list: z.array(LocalizedManufacturerSchema),
128
+ })
129
+ .parse({
130
+ meta,
131
+ list: localizedList,
132
+ });
133
+ });
134
+ }
135
+ /**
136
+ * Update a manufacturer
137
+ */
138
+ updateManufacturer(organizationId, id, userId, body) {
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ // Fetch manufacturer by id
141
+ yield this.findManufacturer(id, organizationId);
142
+ // Update manufacturer
143
+ const updatedManufacturer = yield this.prisma.manufacturer.update({
144
+ where: {
145
+ id,
146
+ organizationId,
147
+ deletedAt: null,
148
+ },
149
+ data: {
150
+ updatedBy: userId,
151
+ name: body.name,
152
+ translations: {
153
+ deleteMany: {},
154
+ create: body.translations || [],
155
+ },
156
+ logoId: body.logoId,
157
+ },
158
+ include: {
159
+ logo: true,
160
+ translations: true,
161
+ },
162
+ });
163
+ return ManufacturerSchema.parse(updatedManufacturer);
164
+ });
165
+ }
166
+ /**
167
+ * Delete a manufacturer (soft delete)
168
+ */
169
+ deleteManufacturer(organizationId, id, userId) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ // Fetch manufacturer by id
172
+ yield this.findManufacturer(id, organizationId);
173
+ // Soft delete manufacturer
174
+ yield this.prisma.manufacturer.update({
175
+ where: {
176
+ id,
177
+ organizationId,
178
+ deletedAt: null,
179
+ },
180
+ data: {
181
+ deletedAt: new Date(),
182
+ deletedBy: userId,
183
+ },
184
+ });
185
+ return;
186
+ });
187
+ }
188
+ }
189
+ export { ManufacturerService };
190
+ //# sourceMappingURL=manufacturer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manufacturer.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/manufacturer/manufacturer.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAEL,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,eAAe,CAAC;AAEvB,MAAM,mBAAmB;IACvB,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEzD;;;OAGG;IACW,gBAAgB,CAC5B,EAAU,EACV,cAAsB,EACtB,OAKC;;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC7D,KAAK,EAAE;oBACL,EAAE;oBACF,cAAc;oBACd,SAAS,EAAE,IAAI;iBAChB;gBACD,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAED;;OAEG;IACU,kBAAkB,CAC7B,cAAsB,EACtB,MAAc,EACd,IAA8C;;YAE9C,0BAA0B;YAC1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;gBACzD,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,cAAc;oBACd,SAAS,EAAE,MAAM;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,YAAY,EAAE;wBACZ,MAAM,EAAE,IAAI,CAAC,YAAY;qBAC1B;iBACF;gBACD,OAAO,EAAE;oBACP,YAAY,EAAE,IAAI;oBAClB,IAAI,EAAE,IAAI;iBACX;aACF,CAAC,CAAC;YAEH,OAAO,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;KAAA;IAED;;OAEG;IACU,eAAe,CAC1B,cAAsB,EACtB,EAAU,EACV,KAAiC;;YAEjC,sCAAsC;YACtC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YAEzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE;gBACnE,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,MAAM;wBAClB,CAAC,CAAC;4BACE,KAAK,EAAE,EAAE,MAAM,EAAE;yBAClB;wBACH,CAAC,CAAC,IAAI;iBACT;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC;YAED,2FAA2F;YAC3F,OAAO,2BAA2B,CAAC,KAAK,CACtC,sBAAsB,CAAC,YAAY,CAAC,CACrC,CAAC;QACJ,CAAC;KAAA;IAED;;OAEG;IACU,gBAAgB,CAC3B,cAAsB,EACtB,KAKC;;YAED,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YAEvD,sCAAsC;YACtC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY;iBAChD,QAAQ,CAAC;gBACR,OAAO,EAAE;oBACP,SAAS,EAAE,MAAM;iBAClB;gBACD,KAAK,kBACH,cAAc,EACd,SAAS,EAAE,IAAI,IACZ,CAAC,MAAM,IAAI;oBACZ,IAAI,EAAE;wBACJ,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,aAAa;qBACpB;iBACF,CAAC,CACH;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,MAAM;wBAClB,CAAC,CAAC;4BACE,KAAK,EAAE,EAAE,MAAM,EAAE;yBAClB;wBACH,CAAC,CAAC,IAAI;iBACT;aACF,CAAC;iBACD,SAAS,CAAC;gBACT,IAAI;gBACJ,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,mDAAmD;gBACnD,OAAO,CAAC;qBACL,MAAM,CAAC;oBACN,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;iBAClC,CAAC;qBACD,KAAK,CAAC;oBACL,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;YACP,CAAC;YAED,oCAAoC;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvE,6DAA6D;YAC7D,OAAO,CAAC;iBACL,MAAM,CAAC;gBACN,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;aAC3C,CAAC;iBACD,KAAK,CAAC;gBACL,IAAI;gBACJ,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;QACP,CAAC;KAAA;IAED;;OAEG;IACU,kBAAkB,CAC7B,cAAsB,EACtB,EAAU,EACV,MAAc,EACd,IAA8C;;YAE9C,2BAA2B;YAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAEhD,sBAAsB;YACtB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;gBAChE,KAAK,EAAE;oBACL,EAAE;oBACF,cAAc;oBACd,SAAS,EAAE,IAAI;iBAChB;gBACD,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,YAAY,EAAE;wBACZ,UAAU,EAAE,EAAE;wBACd,MAAM,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;qBAChC;oBACD,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,IAAI;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,kBAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvD,CAAC;KAAA;IAED;;OAEG;IACU,kBAAkB,CAC7B,cAAsB,EACtB,EAAU,EACV,MAAc;;YAEd,2BAA2B;YAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE;oBACL,EAAE;oBACF,cAAc;oBACd,SAAS,EAAE,IAAI;iBAChB;gBACD,IAAI,EAAE;oBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,SAAS,EAAE,MAAM;iBAClB;aACF,CAAC,CAAC;YAEH,OAAO;QACT,CAAC;KAAA;CACF;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1 +1,229 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Body as t,Column as a,Container as l,Head as r,Heading as n,Hr as d,Html as s,Img as c,Link as o,Preview as m,Row as h,Section as u,Tailwind as p,Text as g}from"@react-email/components";const b=(e,i="PLN",t="en-US")=>new Intl.NumberFormat(t,{style:"currency",currency:i}).format(e),y=({user:y,organization:f,order:x})=>{var v,N,w,k,q,A,P,L,M,S,z,C,j,T,I,D;const F=`This is your receipt from ${f.name}`,O=(new Date).toLocaleDateString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"}),Z=(null===(v=x.payment)||void 0===v?void 0:v.shipping)||0,B=(null===(N=x.payment)||void 0===N?void 0:N.discount)||0,R=(null===(w=x.payment)||void 0===w?void 0:w.total)||0,W=`https://${f.configuration.hostname}/account/orders/${x.id}`;return i(s,{children:[e(r,{}),e(m,{children:F}),e(p,{children:i(t,{className:"bg-gray-50 font-sans",children:[i(l,{className:"bg-gray-50 p-6 max-w-[600px]",children:[e(u,{className:"mb-6",children:i(h,{children:[e(a,{className:"w-[80%]",children:e(c,{alt:"React Email logo",height:"100",src:null===(k=f.logoFile)||void 0===k?void 0:k.url,className:"rounded-lg"})}),e(a,{align:"right",children:i(h,{align:"right",children:[e(a,{children:e(o,{href:"https://www.instagram.com/madrasbistro/",children:e(c,{alt:"Instagram",className:"mx-[4px]",height:"36",src:"https://react.email/static/instagram-logo.png",width:"36"})})}),e(a,{children:e(o,{href:"https://www.facebook.com/madrasBistro/",children:e(c,{alt:"Facebook",className:"mx-[4px]",height:"36",src:"https://react.email/static/facebook-logo.png",width:"36"})})})]})})]})}),i(u,{children:[i(n,{className:"text-3xl font-bold text-gray-800 mb-0",children:["Hi ",y.firstname,","]}),e(g,{className:"text-gray-600 mb-2 text-lg",children:"Your order has been received and is being processed."})]}),e(u,{className:"mb-0",children:e(o,{href:W,className:"bg-gray-900 text-sm rounded-md text-white font-medium py-2 px-5 text-center inline-block my-4",children:"Track Your Order"})})]}),i(l,{className:"mx-auto max-w-[600px] rounded-xl bg-white px-6",children:[e(u,{className:"mb-6",children:i(h,{children:[i(a,{className:"w-[60%]",children:[e(g,{className:"text-gray-500 mb-0",children:"Shipping details"}),i(g,{className:"font-semibold text-gray-800 my-0",children:[null===(q=x.shippingAddress)||void 0===q?void 0:q.firstname," ",null===(A=x.shippingAddress)||void 0===A?void 0:A.lastname]}),i(g,{className:"font-semibold text-gray-800 my-0",children:[null===(P=x.shippingAddress)||void 0===P?void 0:P.addressLineOne," ",(null===(L=x.shippingAddress)||void 0===L?void 0:L.doorNumber)&&` / ${null===(M=x.shippingAddress)||void 0===M?void 0:M.doorNumber}`,e("br",{}),null===(S=x.shippingAddress)||void 0===S?void 0:S.city," ",null===(z=x.shippingAddress)||void 0===z?void 0:z.zipCode]}),e(g,{className:"text-gray-500 mb-0",children:"Phone"}),e(g,{className:"font-semibold text-gray-800 my-0",children:null===(C=x.shippingAddress)||void 0===C?void 0:C.phone})]}),e(a,{className:"w-[40%] p-0 mt-0",align:"right",valign:"top",children:e(g,{className:"text-gray-500 mb-0 pt-1",children:O})})]})}),e(g,{className:"text-gray-500 mb-0",children:"Order Summary"}),e(d,{className:"border-gray-200 mb-0"}),e(u,{children:x.items.map((t,a)=>{var l,r;const n=t;return e("table",{width:"100%",cellPadding:0,cellSpacing:0,border:0,className:a===x.items.length-1?"mb-0":"mb-4",children:i("tr",{children:[i("td",{valign:"top",children:[i(g,{className:"font-semibold mb-0",children:[(null===(l=n.translations[0])||void 0===l?void 0:l.title)||"Product"," (",(null===(r=n.translations[0])||void 0===r?void 0:r.subtitle)||"",")"]}),i(g,{className:"text-gray-600 mb-0 mt-0",children:["Quantity: ",n.quantity]})]}),e("td",{align:"right",valign:"top",children:e(g,{className:"font-semibold",children:b(n.unitPrice*n.quantity,f.configuration.defaultCurrency,f.configuration.defaultLocale)})})]})},a)})}),e(d,{className:"border-gray-200 mt-4"}),e(u,{children:i("table",{width:"100%",cellPadding:0,cellSpacing:0,border:0,children:[i("tr",{children:[e("td",{children:e(g,{className:"text-gray-700",children:"Delivery fee"})}),e("td",{align:"right",children:e(g,{className:"text-gray-700",children:b(Z,f.configuration.defaultCurrency,f.configuration.defaultLocale)})})]}),B>0&&i("tr",{children:[e("td",{children:e(g,{className:"text-gray-700",children:"Campaign"})}),e("td",{align:"right",children:i(g,{className:"text-gray-700",children:["-",b(B,f.configuration.defaultCurrency,f.configuration.defaultLocale)]})})]})]})}),e(d,{className:"border-gray-200"}),e(u,{className:"mb-6",children:e("table",{width:"100%",cellPadding:0,cellSpacing:0,border:0,children:i("tr",{children:[e("td",{children:e(g,{className:"text-xl font-bold mb-0",children:"Total:"})}),e("td",{align:"right",children:e(g,{className:"text-xl font-bold mb-0",children:b(R,f.configuration.defaultCurrency,f.configuration.defaultLocale)})})]})})})]}),e(u,{className:"text-center bg-gray-50 py-5",children:i("table",{className:"w-full",children:[e("tr",{className:"w-full",children:e("td",{align:"center",children:(null===(j=f.logoFile)||void 0===j?void 0:j.url)&&e(c,{alt:"React Email logo",height:"100",src:f.logoFile.url,className:"rounded-lg"})})}),e("tr",{className:"w-full",children:i("td",{align:"center",children:[e(g,{className:"my-[8px] text-[16px] font-semibold text-xl pt-2 text-gray-900",children:f.name}),i(g,{className:"my-[8px] text-[16px] leading-[24px] text-gray-500",children:[null===(T=f.address)||void 0===T?void 0:T.addressLineOne,","," ",null===(I=f.address)||void 0===I?void 0:I.zipCode," ",null===(D=f.address)||void 0===D?void 0:D.city]}),e(g,{className:"mb-0 mt-[4px] text-[16px] leading-[24px] text-gray-500",children:f.phone})]})}),e("tr",{children:e("td",{align:"center",children:i(h,{className:"table-cell h-[44px] w-[56px] align-bottom pt-5",children:[e(a,{className:"pr-[8px]",children:e(o,{href:"https://www.facebook.com/madrasBistro/",children:e(c,{alt:"Facebook",height:"36",src:"https://react.email/static/facebook-logo.png",width:"36"})})}),e(a,{children:e(o,{href:"https://www.instagram.com/madrasbistro/",children:e(c,{alt:"Instagram",height:"36",src:"https://react.email/static/instagram-logo.png",width:"36"})})})]})})})]})})]})})]})};y.PreviewProps={user:{id:"VD0OJ52f0mdAnm5YePP6BAW6hdbaCjAJ",name:"Abhishek Shaji",email:"kontakt@abhishek.pl",emailVerified:!0,image:"https://lh3.googleusercontent.com/a/ACg8ocKbkCAMTNvMizjXNxcm1aYtBiWnYpCYmU-7aE2Ft_M_uiHheZ5f=s96-c",createdAt:"2025-03-22T22:54:40.260Z",updatedAt:"2025-03-22T22:54:40.260Z",firstname:"Abhishek",lastname:"Shaji"},order:{id:"cm94wbpbm0000itx1iv9k2mqr",referenceId:"PH6LD6",token:"VAE9TX",expiresAt:"2025-04-07T00:20:09.689Z",items:[{translations:[{locale:"en",title:"Masala Dosa",subtitle:"Spice Level: Medium"},{locale:"pl",title:"null",subtitle:"Spice Level: Medium"}],rawData:{productId:"cm8kudyqq0006ityduhq0yveu",quantity:6,modifierGroups:[{id:"cm8kuonhv0002ji032ji4bzmc",modifiers:[{id:"cm8kudyqq000ditydq25s2n2e",quantity:1}]}]},unitPrice:39,image:{id:"cm8kuee0m0000l703ocs7snfb",url:"https://z3liuyatqnepss3d.public.blob.vercel-storage.com/Masala%20Dosa-b0tr9uWZqmBTPMUx4x0fzqkM6z5eCw.png",mimeType:"image/png",size:1429845,filename:"Masala Dosa.png"},totalPrice:234,quantity:6,productSnapshotId:"cm8kuopty0006ji035n7w5iby"},{translations:[{locale:"en",title:"Masala Dosa",subtitle:"Spice Level: Medium"},{locale:"pl",title:"null",subtitle:"Spice Level: Medium"}],rawData:{productId:"cm8kudyqq0006ityduhq0yveu",quantity:6,modifierGroups:[{id:"cm8kuonhv0002ji032ji4bzmc",modifiers:[{id:"cm8kudyqq000ditydq25s2n2e",quantity:1}]}]},unitPrice:39,image:{id:"cm8kuee0m0000l703ocs7snfb",url:"https://z3liuyatqnepss3d.public.blob.vercel-storage.com/Masala%20Dosa-b0tr9uWZqmBTPMUx4x0fzqkM6z5eCw.png",mimeType:"image/png",size:1429845,filename:"Masala Dosa.png"},totalPrice:234,quantity:6,productSnapshotId:"cm8kuopty0006ji035n7w5iby"}],shippingMethod:{id:"cm8kuqmkd000iitydar4a1poy",title:"Express Delivery",providerName:"Wolt Courier",requireDateOfDelivery:!0,shippingZones:[{id:"cm8kuqmkd000jitydpdvck2th",title:"Zone 1",distanceUpto:7,price:1,minimumOrderAmount:60,eta:"90min"}],createdAt:"2025-03-22T23:40:23.101Z",updatedAt:"2025-03-22T23:40:35.319Z"},acceptedAt:null,dispatchedAt:null,readyForDispatchAt:null,completedAt:null,cancelledAt:null,shippingAddress:{id:"cm94wbpbm0007itx1akuqh77n",firstname:"Klaudia",lastname:"Smoter",phone:"+48570135862",addressLineOne:"Stanisława Lema 28",doorNumber:"54",addressLineTwo:null,zipCode:"31-571",city:"Kraków",country:"PL",placeId:"ChIJrQfdh9VaFkcRIvg8O2PqnWM",deliveryInstructions:"4th floor - Maho"},fulfilmentMethod:"delivery",currency:"PLN",payment:{id:"cm94wbpbm0008itx1thsnj7ui",method:"blik",provider:"stripe",status:"succeeded",shipping:1,subtotal:234,total:235,discount:0,currency:"PLN"},status:"pending"},organization:{id:"cm8kthfdq0001lg03b59mdy7b",name:"Madras Bistro",phone:"+48570135862",email:"contact@madrasbistro.pl",createdAt:"2025-03-22T23:05:14.271Z",legalEntityId:null,address:{id:"cm8kthfdr0002lg0350ijialt",firstname:null,lastname:null,phone:null,addressLineOne:"Plac Bohaterów Getta 2",doorNumber:null,addressLineTwo:"3",zipCode:"33-332",city:"Kraków",country:"PL",placeId:"ChIJf-nsRkRbFkcR21gtObFSSSA",deliveryInstructions:null},configuration:{id:"cm8kthfdr0003lg03ghgs262n",hostname:"null",countriesShipping:["us"],stripeAccountId:"null",enableHostCheckout:!1,enableHostTracking:!1,isAcceptingOrders:!1,defaultLocale:"en",supportedLocales:["en","pl"],defaultCurrency:"PLN",createdAt:"2025-03-22T23:05:14.271Z"},logo:"https://z3liuyatqnepss3d.public.blob.vercel-storage.com/logo-zeJymFRMFCIKPlvjxYm2af3SAWvBOj.png",logoFile:{id:"cm8ktmu890005lg0356gwclfk",url:"https://z3liuyatqnepss3d.public.blob.vercel-storage.com/logo-zeJymFRMFCIKPlvjxYm2af3SAWvBOj.png",mimeType:"image/png",size:1652289,filename:"logo.png"}}};export default y;export{y as OrderConfirmationEmail};
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Body, Column, Container, Head, Heading, Hr, Html, Img, Link, Preview, Row, Section, Tailwind, Text, } from "@react-email/components";
3
+ const formatPrice = (price, currency = "PLN", locale = "en-US") => {
4
+ return new Intl.NumberFormat(locale, {
5
+ style: "currency",
6
+ currency,
7
+ }).format(price);
8
+ };
9
+ const OrderConfirmationEmail = ({ user, organization, order, }) => {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
11
+ const previewText = `This is your receipt from ${organization.name}`;
12
+ const formattedDate = new Date().toLocaleDateString("en-GB", {
13
+ day: "2-digit",
14
+ month: "2-digit",
15
+ year: "numeric",
16
+ });
17
+ // Extract data from order.payment safely
18
+ const shippingCost = ((_a = order.payment) === null || _a === void 0 ? void 0 : _a.shipping) || 0;
19
+ const discount = ((_b = order.payment) === null || _b === void 0 ? void 0 : _b.discount) || 0;
20
+ const total = ((_c = order.payment) === null || _c === void 0 ? void 0 : _c.total) || 0;
21
+ const trackingUrl = `https://${organization.configuration.hostname}/account/orders/${order.id}`;
22
+ return (_jsxs(Html, { children: [_jsx(Head, {}), _jsx(Preview, { children: previewText }), _jsx(Tailwind, { children: _jsxs(Body, { className: "bg-gray-50 font-sans", children: [_jsxs(Container, { className: "bg-gray-50 p-6 max-w-[600px]", children: [_jsx(Section, { className: "mb-6", children: _jsxs(Row, { children: [_jsx(Column, { className: "w-[80%]", children: _jsx(Img, { alt: "React Email logo", height: "100", src: (_d = organization.logoFile) === null || _d === void 0 ? void 0 : _d.url, className: "rounded-lg" }) }), _jsx(Column, { align: "right", children: _jsxs(Row, { align: "right", children: [_jsx(Column, { children: _jsx(Link, { href: "https://www.instagram.com/madrasbistro/", children: _jsx(Img, { alt: "Instagram", className: "mx-[4px]", height: "36", src: "https://react.email/static/instagram-logo.png", width: "36" }) }) }), _jsx(Column, { children: _jsx(Link, { href: "https://www.facebook.com/madrasBistro/", children: _jsx(Img, { alt: "Facebook", className: "mx-[4px]", height: "36", src: "https://react.email/static/facebook-logo.png", width: "36" }) }) })] }) })] }) }), _jsxs(Section, { children: [_jsxs(Heading, { className: "text-3xl font-bold text-gray-800 mb-0", children: ["Hi ", user.firstname, ","] }), _jsx(Text, { className: "text-gray-600 mb-2 text-lg", children: "Your order has been received and is being processed." })] }), _jsx(Section, { className: "mb-0", children: _jsx(Link, { href: trackingUrl, className: "bg-gray-900 text-sm rounded-md text-white font-medium py-2 px-5 text-center inline-block my-4", children: "Track Your Order" }) })] }), _jsxs(Container, { className: "mx-auto max-w-[600px] rounded-xl bg-white px-6", children: [_jsx(Section, { className: "mb-6", children: _jsxs(Row, { children: [_jsxs(Column, { className: "w-[60%]", children: [_jsx(Text, { className: "text-gray-500 mb-0", children: "Shipping details" }), _jsxs(Text, { className: "font-semibold text-gray-800 my-0", children: [(_e = order.shippingAddress) === null || _e === void 0 ? void 0 : _e.firstname, " ", (_f = order.shippingAddress) === null || _f === void 0 ? void 0 : _f.lastname] }), _jsxs(Text, { className: "font-semibold text-gray-800 my-0", children: [(_g = order.shippingAddress) === null || _g === void 0 ? void 0 : _g.addressLineOne, " ", ((_h = order.shippingAddress) === null || _h === void 0 ? void 0 : _h.doorNumber) &&
23
+ ` / ${(_j = order.shippingAddress) === null || _j === void 0 ? void 0 : _j.doorNumber}`, _jsx("br", {}), (_k = order.shippingAddress) === null || _k === void 0 ? void 0 : _k.city, " ", (_l = order.shippingAddress) === null || _l === void 0 ? void 0 : _l.zipCode] }), _jsx(Text, { className: "text-gray-500 mb-0", children: "Phone" }), _jsx(Text, { className: "font-semibold text-gray-800 my-0", children: (_m = order.shippingAddress) === null || _m === void 0 ? void 0 : _m.phone })] }), _jsx(Column, { className: "w-[40%] p-0 mt-0", align: "right", valign: "top", children: _jsx(Text, { className: "text-gray-500 mb-0 pt-1", children: formattedDate }) })] }) }), _jsx(Text, { className: "text-gray-500 mb-0", children: "Order Summary" }), _jsx(Hr, { className: "border-gray-200 mb-0" }), _jsx(Section, { children: order.items.map((item, index) => {
24
+ var _a, _b;
25
+ // Safely cast item to include our extended fields
26
+ const extendedItem = item;
27
+ return (_jsx("table", { width: "100%", cellPadding: 0, cellSpacing: 0, border: 0, className: index === order.items.length - 1 ? "mb-0" : "mb-4", children: _jsxs("tr", { children: [_jsxs("td", { valign: "top", children: [_jsxs(Text, { className: "font-semibold mb-0", children: [((_a = extendedItem.translations[0]) === null || _a === void 0 ? void 0 : _a.title) || "Product", " (", ((_b = extendedItem.translations[0]) === null || _b === void 0 ? void 0 : _b.subtitle) || "", ")"] }), _jsxs(Text, { className: "text-gray-600 mb-0 mt-0", children: ["Quantity: ", extendedItem.quantity] })] }), _jsx("td", { align: "right", valign: "top", children: _jsx(Text, { className: "font-semibold", children: formatPrice(extendedItem.unitPrice * extendedItem.quantity, organization.configuration.defaultCurrency, organization.configuration.defaultLocale) }) })] }) }, index));
28
+ }) }), _jsx(Hr, { className: "border-gray-200 mt-4" }), _jsx(Section, { children: _jsxs("table", { width: "100%", cellPadding: 0, cellSpacing: 0, border: 0, children: [_jsxs("tr", { children: [_jsx("td", { children: _jsx(Text, { className: "text-gray-700", children: "Delivery fee" }) }), _jsx("td", { align: "right", children: _jsx(Text, { className: "text-gray-700", children: formatPrice(shippingCost, organization.configuration.defaultCurrency, organization.configuration.defaultLocale) }) })] }), discount > 0 && (_jsxs("tr", { children: [_jsx("td", { children: _jsx(Text, { className: "text-gray-700", children: "Campaign" }) }), _jsx("td", { align: "right", children: _jsxs(Text, { className: "text-gray-700", children: ["-", formatPrice(discount, organization.configuration.defaultCurrency, organization.configuration.defaultLocale)] }) })] }))] }) }), _jsx(Hr, { className: "border-gray-200" }), _jsx(Section, { className: "mb-6", children: _jsx("table", { width: "100%", cellPadding: 0, cellSpacing: 0, border: 0, children: _jsxs("tr", { children: [_jsx("td", { children: _jsx(Text, { className: "text-xl font-bold mb-0", children: "Total:" }) }), _jsx("td", { align: "right", children: _jsx(Text, { className: "text-xl font-bold mb-0", children: formatPrice(total, organization.configuration.defaultCurrency, organization.configuration.defaultLocale) }) })] }) }) })] }), _jsx(Section, { className: "text-center bg-gray-50 py-5", children: _jsxs("table", { className: "w-full", children: [_jsx("tr", { className: "w-full", children: _jsx("td", { align: "center", children: ((_o = organization.logoFile) === null || _o === void 0 ? void 0 : _o.url) && (_jsx(Img, { alt: "React Email logo", height: "100", src: organization.logoFile.url, className: "rounded-lg" })) }) }), _jsx("tr", { className: "w-full", children: _jsxs("td", { align: "center", children: [_jsx(Text, { className: "my-[8px] text-[16px] font-semibold text-xl pt-2 text-gray-900", children: organization.name }), _jsxs(Text, { className: "my-[8px] text-[16px] leading-[24px] text-gray-500", children: [(_p = organization.address) === null || _p === void 0 ? void 0 : _p.addressLineOne, ",", " ", (_q = organization.address) === null || _q === void 0 ? void 0 : _q.zipCode, " ", (_r = organization.address) === null || _r === void 0 ? void 0 : _r.city] }), _jsx(Text, { className: "mb-0 mt-[4px] text-[16px] leading-[24px] text-gray-500", children: organization.phone })] }) }), _jsx("tr", { children: _jsx("td", { align: "center", children: _jsxs(Row, { className: "table-cell h-[44px] w-[56px] align-bottom pt-5", children: [_jsx(Column, { className: "pr-[8px]", children: _jsx(Link, { href: "https://www.facebook.com/madrasBistro/", children: _jsx(Img, { alt: "Facebook", height: "36", src: "https://react.email/static/facebook-logo.png", width: "36" }) }) }), _jsx(Column, { children: _jsx(Link, { href: "https://www.instagram.com/madrasbistro/", children: _jsx(Img, { alt: "Instagram", height: "36", src: "https://react.email/static/instagram-logo.png", width: "36" }) }) })] }) }) })] }) })] }) })] }));
29
+ };
30
+ const previewProps = {
31
+ user: {
32
+ id: "VD0OJ52f0mdAnm5YePP6BAW6hdbaCjAJ",
33
+ name: "Abhishek Shaji",
34
+ email: "kontakt@abhishek.pl",
35
+ emailVerified: true,
36
+ image: "https://lh3.googleusercontent.com/a/ACg8ocKbkCAMTNvMizjXNxcm1aYtBiWnYpCYmU-7aE2Ft_M_uiHheZ5f=s96-c",
37
+ createdAt: "2025-03-22T22:54:40.260Z",
38
+ updatedAt: "2025-03-22T22:54:40.260Z",
39
+ firstname: "Abhishek",
40
+ lastname: "Shaji",
41
+ },
42
+ order: {
43
+ id: "cm94wbpbm0000itx1iv9k2mqr",
44
+ referenceId: "PH6LD6",
45
+ token: "VAE9TX",
46
+ expiresAt: "2025-04-07T00:20:09.689Z",
47
+ items: [
48
+ {
49
+ translations: [
50
+ {
51
+ locale: "en",
52
+ title: "Masala Dosa",
53
+ subtitle: "Spice Level: Medium",
54
+ },
55
+ {
56
+ locale: "pl",
57
+ title: "null",
58
+ subtitle: "Spice Level: Medium",
59
+ },
60
+ ],
61
+ rawData: {
62
+ productId: "cm8kudyqq0006ityduhq0yveu",
63
+ quantity: 6,
64
+ modifierGroups: [
65
+ {
66
+ id: "cm8kuonhv0002ji032ji4bzmc",
67
+ modifiers: [
68
+ {
69
+ id: "cm8kudyqq000ditydq25s2n2e",
70
+ quantity: 1,
71
+ },
72
+ ],
73
+ },
74
+ ],
75
+ },
76
+ unitPrice: 39,
77
+ image: {
78
+ id: "cm8kuee0m0000l703ocs7snfb",
79
+ url: "https://z3liuyatqnepss3d.public.blob.vercel-storage.com/Masala%20Dosa-b0tr9uWZqmBTPMUx4x0fzqkM6z5eCw.png",
80
+ mimeType: "image/png",
81
+ size: 1429845,
82
+ filename: "Masala Dosa.png",
83
+ },
84
+ totalPrice: 234,
85
+ quantity: 6,
86
+ productSnapshotId: "cm8kuopty0006ji035n7w5iby",
87
+ },
88
+ {
89
+ translations: [
90
+ {
91
+ locale: "en",
92
+ title: "Masala Dosa",
93
+ subtitle: "Spice Level: Medium",
94
+ },
95
+ {
96
+ locale: "pl",
97
+ title: "null",
98
+ subtitle: "Spice Level: Medium",
99
+ },
100
+ ],
101
+ rawData: {
102
+ productId: "cm8kudyqq0006ityduhq0yveu",
103
+ quantity: 6,
104
+ modifierGroups: [
105
+ {
106
+ id: "cm8kuonhv0002ji032ji4bzmc",
107
+ modifiers: [
108
+ {
109
+ id: "cm8kudyqq000ditydq25s2n2e",
110
+ quantity: 1,
111
+ },
112
+ ],
113
+ },
114
+ ],
115
+ },
116
+ unitPrice: 39,
117
+ image: {
118
+ id: "cm8kuee0m0000l703ocs7snfb",
119
+ url: "https://z3liuyatqnepss3d.public.blob.vercel-storage.com/Masala%20Dosa-b0tr9uWZqmBTPMUx4x0fzqkM6z5eCw.png",
120
+ mimeType: "image/png",
121
+ size: 1429845,
122
+ filename: "Masala Dosa.png",
123
+ },
124
+ totalPrice: 234,
125
+ quantity: 6,
126
+ productSnapshotId: "cm8kuopty0006ji035n7w5iby",
127
+ },
128
+ ],
129
+ shippingMethod: {
130
+ id: "cm8kuqmkd000iitydar4a1poy",
131
+ title: "Express Delivery",
132
+ providerName: "Wolt Courier",
133
+ requireDateOfDelivery: true,
134
+ shippingZones: [
135
+ {
136
+ id: "cm8kuqmkd000jitydpdvck2th",
137
+ title: "Zone 1",
138
+ distanceUpto: 7,
139
+ price: 1,
140
+ minimumOrderAmount: 60,
141
+ eta: "90min",
142
+ },
143
+ ],
144
+ createdAt: "2025-03-22T23:40:23.101Z",
145
+ updatedAt: "2025-03-22T23:40:35.319Z",
146
+ },
147
+ acceptedAt: null,
148
+ dispatchedAt: null,
149
+ readyForDispatchAt: null,
150
+ completedAt: null,
151
+ cancelledAt: null,
152
+ shippingAddress: {
153
+ id: "cm94wbpbm0007itx1akuqh77n",
154
+ firstname: "Klaudia",
155
+ lastname: "Smoter",
156
+ phone: "+48570135862",
157
+ addressLineOne: "Stanisława Lema 28",
158
+ doorNumber: "54",
159
+ addressLineTwo: null,
160
+ zipCode: "31-571",
161
+ city: "Kraków",
162
+ country: "PL",
163
+ placeId: "ChIJrQfdh9VaFkcRIvg8O2PqnWM",
164
+ deliveryInstructions: "4th floor - Maho",
165
+ },
166
+ fulfilmentMethod: "delivery",
167
+ currency: "PLN",
168
+ payment: {
169
+ id: "cm94wbpbm0008itx1thsnj7ui",
170
+ method: "blik",
171
+ provider: "stripe",
172
+ status: "succeeded",
173
+ shipping: 1,
174
+ subtotal: 234,
175
+ total: 235,
176
+ discount: 0,
177
+ currency: "PLN",
178
+ },
179
+ status: "pending",
180
+ },
181
+ organization: {
182
+ id: "cm8kthfdq0001lg03b59mdy7b",
183
+ name: "Madras Bistro",
184
+ phone: "+48570135862",
185
+ email: "contact@madrasbistro.pl",
186
+ createdAt: "2025-03-22T23:05:14.271Z",
187
+ legalEntityId: null,
188
+ address: {
189
+ id: "cm8kthfdr0002lg0350ijialt",
190
+ firstname: null,
191
+ lastname: null,
192
+ phone: null,
193
+ addressLineOne: "Plac Bohaterów Getta 2",
194
+ doorNumber: null,
195
+ addressLineTwo: "3",
196
+ zipCode: "33-332",
197
+ city: "Kraków",
198
+ country: "PL",
199
+ placeId: "ChIJf-nsRkRbFkcR21gtObFSSSA",
200
+ deliveryInstructions: null,
201
+ },
202
+ configuration: {
203
+ id: "cm8kthfdr0003lg03ghgs262n",
204
+ hostname: "null",
205
+ countriesShipping: ["us"],
206
+ stripeAccountId: "null",
207
+ enableHostCheckout: false,
208
+ enableHostTracking: false,
209
+ isAcceptingOrders: false,
210
+ defaultLocale: "en",
211
+ supportedLocales: ["en", "pl"],
212
+ defaultCurrency: "PLN",
213
+ createdAt: "2025-03-22T23:05:14.271Z",
214
+ },
215
+ logo: "https://z3liuyatqnepss3d.public.blob.vercel-storage.com/logo-zeJymFRMFCIKPlvjxYm2af3SAWvBOj.png",
216
+ logoFile: {
217
+ id: "cm8ktmu890005lg0356gwclfk",
218
+ url: "https://z3liuyatqnepss3d.public.blob.vercel-storage.com/logo-zeJymFRMFCIKPlvjxYm2af3SAWvBOj.png",
219
+ mimeType: "image/png",
220
+ size: 1652289,
221
+ filename: "logo.png",
222
+ },
223
+ },
224
+ };
225
+ // Fixed the TypeScript error by using proper type assertion
226
+ OrderConfirmationEmail.PreviewProps = previewProps;
227
+ export default OrderConfirmationEmail;
228
+ export { OrderConfirmationEmail };
229
+ //# sourceMappingURL=order-confirmation.email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-confirmation.email.js","sourceRoot":"","sources":["../../../../../../../packages/rest-api/src/features/order/emails/order-confirmation.email.tsx"],"names":[],"mappings":"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"}