@shophost/rest-api 0.1.0

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 (430) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +69 -0
  3. package/global.d.ts +1 -0
  4. package/package.json +53 -0
  5. package/schemas.d.ts +1 -0
  6. package/schemas.js +2 -0
  7. package/schemas.ts +1 -0
  8. package/src/contract.d.ts +3853 -0
  9. package/src/contract.js +6 -0
  10. package/src/contract.js.map +1 -0
  11. package/src/contracts/cart.contract.d.ts +536 -0
  12. package/src/contracts/cart.contract.js +29 -0
  13. package/src/contracts/cart.contract.js.map +1 -0
  14. package/src/contracts/customers.contract.d.ts +903 -0
  15. package/src/contracts/customers.contract.js +119 -0
  16. package/src/contracts/customers.contract.js.map +1 -0
  17. package/src/contracts/files.contract.d.ts +152 -0
  18. package/src/contracts/files.contract.js +29 -0
  19. package/src/contracts/files.contract.js.map +1 -0
  20. package/src/contracts/health.contract.d.ts +38 -0
  21. package/src/contracts/health.contract.js +25 -0
  22. package/src/contracts/health.contract.js.map +1 -0
  23. package/src/contracts/index.d.ts +15466 -0
  24. package/src/contracts/index.js +32 -0
  25. package/src/contracts/index.js.map +1 -0
  26. package/src/contracts/location.contract.d.ts +127 -0
  27. package/src/contracts/location.contract.js +40 -0
  28. package/src/contracts/location.contract.js.map +1 -0
  29. package/src/contracts/manufacturers.contract.d.ts +931 -0
  30. package/src/contracts/manufacturers.contract.js +85 -0
  31. package/src/contracts/manufacturers.contract.js.map +1 -0
  32. package/src/contracts/orders.contract.d.ts +3910 -0
  33. package/src/contracts/orders.contract.js +92 -0
  34. package/src/contracts/orders.contract.js.map +1 -0
  35. package/src/contracts/organizations.contract.d.ts +2234 -0
  36. package/src/contracts/organizations.contract.js +71 -0
  37. package/src/contracts/organizations.contract.js.map +1 -0
  38. package/src/contracts/payment.contract.d.ts +64 -0
  39. package/src/contracts/payment.contract.js +20 -0
  40. package/src/contracts/payment.contract.js.map +1 -0
  41. package/src/contracts/product-categories.contract.d.ts +1172 -0
  42. package/src/contracts/product-categories.contract.js +103 -0
  43. package/src/contracts/product-categories.contract.js.map +1 -0
  44. package/src/contracts/products.contract.d.ts +3976 -0
  45. package/src/contracts/products.contract.js +128 -0
  46. package/src/contracts/products.contract.js.map +1 -0
  47. package/src/contracts/reservation.contract.d.ts +675 -0
  48. package/src/contracts/reservation.contract.js +141 -0
  49. package/src/contracts/reservation.contract.js.map +1 -0
  50. package/src/contracts/shipping-methods.contract.d.ts +1276 -0
  51. package/src/contracts/shipping-methods.contract.js +118 -0
  52. package/src/contracts/shipping-methods.contract.js.map +1 -0
  53. package/src/contracts/shipping.contract.d.ts +319 -0
  54. package/src/contracts/shipping.contract.js +42 -0
  55. package/src/contracts/shipping.contract.js.map +1 -0
  56. package/src/contracts/webhook.contract.d.ts +66 -0
  57. package/src/contracts/webhook.contract.js +28 -0
  58. package/src/contracts/webhook.contract.js.map +1 -0
  59. package/src/db/__generated__/client/client.d.ts +385 -0
  60. package/src/db/__generated__/client/client.js +44 -0
  61. package/src/db/__generated__/client/client.js.map +1 -0
  62. package/src/db/__generated__/client/commonInputTypes.d.ts +816 -0
  63. package/src/db/__generated__/client/commonInputTypes.js +10 -0
  64. package/src/db/__generated__/client/commonInputTypes.js.map +1 -0
  65. package/src/db/__generated__/client/enums.d.ts +204 -0
  66. package/src/db/__generated__/client/enums.js +199 -0
  67. package/src/db/__generated__/client/enums.js.map +1 -0
  68. package/src/db/__generated__/client/index.d.ts +1 -0
  69. package/src/db/__generated__/client/index.js +5 -0
  70. package/src/db/__generated__/client/index.js.map +1 -0
  71. package/src/db/__generated__/client/internal/class.d.ts +414 -0
  72. package/src/db/__generated__/client/internal/class.js +76 -0
  73. package/src/db/__generated__/client/internal/class.js.map +1 -0
  74. package/src/db/__generated__/client/internal/prismaNamespace.d.ts +3474 -0
  75. package/src/db/__generated__/client/internal/prismaNamespace.js +543 -0
  76. package/src/db/__generated__/client/internal/prismaNamespace.js.map +1 -0
  77. package/src/db/__generated__/client/models/Account.d.ts +1459 -0
  78. package/src/db/__generated__/client/models/Account.js +2 -0
  79. package/src/db/__generated__/client/models/Account.js.map +1 -0
  80. package/src/db/__generated__/client/models/Address.d.ts +2337 -0
  81. package/src/db/__generated__/client/models/Address.js +2 -0
  82. package/src/db/__generated__/client/models/Address.js.map +1 -0
  83. package/src/db/__generated__/client/models/Campaign.d.ts +1469 -0
  84. package/src/db/__generated__/client/models/Campaign.js +2 -0
  85. package/src/db/__generated__/client/models/Campaign.js.map +1 -0
  86. package/src/db/__generated__/client/models/ClosingTimes.d.ts +1227 -0
  87. package/src/db/__generated__/client/models/ClosingTimes.js +2 -0
  88. package/src/db/__generated__/client/models/ClosingTimes.js.map +1 -0
  89. package/src/db/__generated__/client/models/File.d.ts +2670 -0
  90. package/src/db/__generated__/client/models/File.js +2 -0
  91. package/src/db/__generated__/client/models/File.js.map +1 -0
  92. package/src/db/__generated__/client/models/Invitation.d.ts +1363 -0
  93. package/src/db/__generated__/client/models/Invitation.js +2 -0
  94. package/src/db/__generated__/client/models/Invitation.js.map +1 -0
  95. package/src/db/__generated__/client/models/LegalEntity.d.ts +1572 -0
  96. package/src/db/__generated__/client/models/LegalEntity.js +2 -0
  97. package/src/db/__generated__/client/models/LegalEntity.js.map +1 -0
  98. package/src/db/__generated__/client/models/Manufacturer.d.ts +1746 -0
  99. package/src/db/__generated__/client/models/Manufacturer.js +2 -0
  100. package/src/db/__generated__/client/models/Manufacturer.js.map +1 -0
  101. package/src/db/__generated__/client/models/ManufacturerTranslation.d.ts +1286 -0
  102. package/src/db/__generated__/client/models/ManufacturerTranslation.js +2 -0
  103. package/src/db/__generated__/client/models/ManufacturerTranslation.js.map +1 -0
  104. package/src/db/__generated__/client/models/Member.d.ts +1281 -0
  105. package/src/db/__generated__/client/models/Member.js +2 -0
  106. package/src/db/__generated__/client/models/Member.js.map +1 -0
  107. package/src/db/__generated__/client/models/Modifier.d.ts +1404 -0
  108. package/src/db/__generated__/client/models/Modifier.js +2 -0
  109. package/src/db/__generated__/client/models/Modifier.js.map +1 -0
  110. package/src/db/__generated__/client/models/ModifierGroup.d.ts +1469 -0
  111. package/src/db/__generated__/client/models/ModifierGroup.js +2 -0
  112. package/src/db/__generated__/client/models/ModifierGroup.js.map +1 -0
  113. package/src/db/__generated__/client/models/ModifierGroupTranslation.d.ts +1181 -0
  114. package/src/db/__generated__/client/models/ModifierGroupTranslation.js +2 -0
  115. package/src/db/__generated__/client/models/ModifierGroupTranslation.js.map +1 -0
  116. package/src/db/__generated__/client/models/OpeningTimes.d.ts +1227 -0
  117. package/src/db/__generated__/client/models/OpeningTimes.js +2 -0
  118. package/src/db/__generated__/client/models/OpeningTimes.js.map +1 -0
  119. package/src/db/__generated__/client/models/Order.d.ts +2820 -0
  120. package/src/db/__generated__/client/models/Order.js +2 -0
  121. package/src/db/__generated__/client/models/Order.js.map +1 -0
  122. package/src/db/__generated__/client/models/OrderItem.d.ts +1755 -0
  123. package/src/db/__generated__/client/models/OrderItem.js +2 -0
  124. package/src/db/__generated__/client/models/OrderItem.js.map +1 -0
  125. package/src/db/__generated__/client/models/OrderItemTranslation.d.ts +1181 -0
  126. package/src/db/__generated__/client/models/OrderItemTranslation.js +2 -0
  127. package/src/db/__generated__/client/models/OrderItemTranslation.js.map +1 -0
  128. package/src/db/__generated__/client/models/Organization.d.ts +3996 -0
  129. package/src/db/__generated__/client/models/Organization.js +2 -0
  130. package/src/db/__generated__/client/models/Organization.js.map +1 -0
  131. package/src/db/__generated__/client/models/OrganizationConfiguration.d.ts +1954 -0
  132. package/src/db/__generated__/client/models/OrganizationConfiguration.js +2 -0
  133. package/src/db/__generated__/client/models/OrganizationConfiguration.js.map +1 -0
  134. package/src/db/__generated__/client/models/Payment.d.ts +1538 -0
  135. package/src/db/__generated__/client/models/Payment.js +2 -0
  136. package/src/db/__generated__/client/models/Payment.js.map +1 -0
  137. package/src/db/__generated__/client/models/PaymentSession.d.ts +1384 -0
  138. package/src/db/__generated__/client/models/PaymentSession.js +2 -0
  139. package/src/db/__generated__/client/models/PaymentSession.js.map +1 -0
  140. package/src/db/__generated__/client/models/Product.d.ts +3136 -0
  141. package/src/db/__generated__/client/models/Product.js +2 -0
  142. package/src/db/__generated__/client/models/Product.js.map +1 -0
  143. package/src/db/__generated__/client/models/ProductCategory.d.ts +1964 -0
  144. package/src/db/__generated__/client/models/ProductCategory.js +2 -0
  145. package/src/db/__generated__/client/models/ProductCategory.js.map +1 -0
  146. package/src/db/__generated__/client/models/ProductCategoryTranslation.d.ts +1321 -0
  147. package/src/db/__generated__/client/models/ProductCategoryTranslation.js +2 -0
  148. package/src/db/__generated__/client/models/ProductCategoryTranslation.js.map +1 -0
  149. package/src/db/__generated__/client/models/ProductSnapshot.d.ts +1389 -0
  150. package/src/db/__generated__/client/models/ProductSnapshot.js +2 -0
  151. package/src/db/__generated__/client/models/ProductSnapshot.js.map +1 -0
  152. package/src/db/__generated__/client/models/ProductTranslation.d.ts +1321 -0
  153. package/src/db/__generated__/client/models/ProductTranslation.js +2 -0
  154. package/src/db/__generated__/client/models/ProductTranslation.js.map +1 -0
  155. package/src/db/__generated__/client/models/Reservation.d.ts +1665 -0
  156. package/src/db/__generated__/client/models/Reservation.js +2 -0
  157. package/src/db/__generated__/client/models/Reservation.js.map +1 -0
  158. package/src/db/__generated__/client/models/Session.d.ts +1316 -0
  159. package/src/db/__generated__/client/models/Session.js +2 -0
  160. package/src/db/__generated__/client/models/Session.js.map +1 -0
  161. package/src/db/__generated__/client/models/ShippingMethod.d.ts +1934 -0
  162. package/src/db/__generated__/client/models/ShippingMethod.js +2 -0
  163. package/src/db/__generated__/client/models/ShippingMethod.js.map +1 -0
  164. package/src/db/__generated__/client/models/ShippingZone.d.ts +1366 -0
  165. package/src/db/__generated__/client/models/ShippingZone.js +2 -0
  166. package/src/db/__generated__/client/models/ShippingZone.js.map +1 -0
  167. package/src/db/__generated__/client/models/User.d.ts +2201 -0
  168. package/src/db/__generated__/client/models/User.js +2 -0
  169. package/src/db/__generated__/client/models/User.js.map +1 -0
  170. package/src/db/__generated__/client/models/Verification.d.ts +1026 -0
  171. package/src/db/__generated__/client/models/Verification.js +2 -0
  172. package/src/db/__generated__/client/models/Verification.js.map +1 -0
  173. package/src/db/__generated__/client/models.d.ts +38 -0
  174. package/src/db/__generated__/client/models.js +2 -0
  175. package/src/db/__generated__/client/models.js.map +1 -0
  176. package/src/db/index.d.ts +1 -0
  177. package/src/db/index.js +2 -0
  178. package/src/db/index.js.map +1 -0
  179. package/src/emails/order-confirmation-email.d.ts +10 -0
  180. package/src/emails/order-confirmation-email.js +229 -0
  181. package/src/emails/order-confirmation-email.js.map +1 -0
  182. package/src/emails/order-notification-email.d.ts +10 -0
  183. package/src/emails/order-notification-email.js +229 -0
  184. package/src/emails/order-notification-email.js.map +1 -0
  185. package/src/emails/reservation-cancellation-email.d.ts +10 -0
  186. package/src/emails/reservation-cancellation-email.js +82 -0
  187. package/src/emails/reservation-cancellation-email.js.map +1 -0
  188. package/src/emails/reservation-confirmation-email.d.ts +10 -0
  189. package/src/emails/reservation-confirmation-email.js +82 -0
  190. package/src/emails/reservation-confirmation-email.js.map +1 -0
  191. package/src/emails/reservation-notification-email.d.ts +11 -0
  192. package/src/emails/reservation-notification-email.js +93 -0
  193. package/src/emails/reservation-notification-email.js.map +1 -0
  194. package/src/exceptions/http-exception.d.ts +6 -0
  195. package/src/exceptions/http-exception.js +9 -0
  196. package/src/exceptions/http-exception.js.map +1 -0
  197. package/src/handlers/webhook.handler.d.ts +8 -0
  198. package/src/handlers/webhook.handler.js +36 -0
  199. package/src/handlers/webhook.handler.js.map +1 -0
  200. package/src/index.d.ts +5 -0
  201. package/src/index.js +7 -0
  202. package/src/index.js.map +1 -0
  203. package/src/integrations/next.d.ts +25 -0
  204. package/src/integrations/next.js +69 -0
  205. package/src/integrations/next.js.map +1 -0
  206. package/src/lib/better-auth.lib.d.ts +10215 -0
  207. package/src/lib/better-auth.lib.js +96 -0
  208. package/src/lib/better-auth.lib.js.map +1 -0
  209. package/src/lib/openapi.lib.d.ts +2 -0
  210. package/src/lib/openapi.lib.js +25 -0
  211. package/src/lib/openapi.lib.js.map +1 -0
  212. package/src/lib/pino.d.ts +1 -0
  213. package/src/lib/pino.js +5 -0
  214. package/src/lib/pino.js.map +1 -0
  215. package/src/lib/prisma.d.ts +819 -0
  216. package/src/lib/prisma.js +14 -0
  217. package/src/lib/prisma.js.map +1 -0
  218. package/src/lib/stripe.d.ts +2 -0
  219. package/src/lib/stripe.js +8 -0
  220. package/src/lib/stripe.js.map +1 -0
  221. package/src/lib/ts-rest.d.ts +2 -0
  222. package/src/lib/ts-rest.js +3 -0
  223. package/src/lib/ts-rest.js.map +1 -0
  224. package/src/routers/cart.router.d.ts +536 -0
  225. package/src/routers/cart.router.js +20 -0
  226. package/src/routers/cart.router.js.map +1 -0
  227. package/src/routers/file.router.d.ts +153 -0
  228. package/src/routers/file.router.js +28 -0
  229. package/src/routers/file.router.js.map +1 -0
  230. package/src/routers/health.router.d.ts +37 -0
  231. package/src/routers/health.router.js +17 -0
  232. package/src/routers/health.router.js.map +1 -0
  233. package/src/routers/index.d.ts +11 -0
  234. package/src/routers/index.js +12 -0
  235. package/src/routers/index.js.map +1 -0
  236. package/src/routers/manufacturer.router.d.ts +931 -0
  237. package/src/routers/manufacturer.router.js +58 -0
  238. package/src/routers/manufacturer.router.js.map +1 -0
  239. package/src/routers/order.router.d.ts +3911 -0
  240. package/src/routers/order.router.js +60 -0
  241. package/src/routers/order.router.js.map +1 -0
  242. package/src/routers/organization.router.d.ts +2234 -0
  243. package/src/routers/organization.router.js +55 -0
  244. package/src/routers/organization.router.js.map +1 -0
  245. package/src/routers/payment.router.d.ts +65 -0
  246. package/src/routers/payment.router.js +22 -0
  247. package/src/routers/payment.router.js.map +1 -0
  248. package/src/routers/places.router.d.ts +132 -0
  249. package/src/routers/places.router.js +31 -0
  250. package/src/routers/places.router.js.map +1 -0
  251. package/src/routers/product-category.router.d.ts +1172 -0
  252. package/src/routers/product-category.router.js +66 -0
  253. package/src/routers/product-category.router.js.map +1 -0
  254. package/src/routers/product.router.d.ts +3976 -0
  255. package/src/routers/product.router.js +86 -0
  256. package/src/routers/product.router.js.map +1 -0
  257. package/src/routers/reservation.router.d.ts +675 -0
  258. package/src/routers/reservation.router.js +71 -0
  259. package/src/routers/reservation.router.js.map +1 -0
  260. package/src/routers/shipping-method.router.d.ts +1276 -0
  261. package/src/routers/shipping-method.router.js +67 -0
  262. package/src/routers/shipping-method.router.js.map +1 -0
  263. package/src/routers/shipping.router.d.ts +320 -0
  264. package/src/routers/shipping.router.js +38 -0
  265. package/src/routers/shipping.router.js.map +1 -0
  266. package/src/routers/webhook.router.d.ts +65 -0
  267. package/src/routers/webhook.router.js +19 -0
  268. package/src/routers/webhook.router.js.map +1 -0
  269. package/src/schemas/address.schema.d.ts +235 -0
  270. package/src/schemas/address.schema.js +114 -0
  271. package/src/schemas/address.schema.js.map +1 -0
  272. package/src/schemas/auth.schema.d.ts +29 -0
  273. package/src/schemas/auth.schema.js +39 -0
  274. package/src/schemas/auth.schema.js.map +1 -0
  275. package/src/schemas/cart.schema.d.ts +446 -0
  276. package/src/schemas/cart.schema.js +41 -0
  277. package/src/schemas/cart.schema.js.map +1 -0
  278. package/src/schemas/currency.schema.d.ts +49 -0
  279. package/src/schemas/currency.schema.js +120 -0
  280. package/src/schemas/currency.schema.js.map +1 -0
  281. package/src/schemas/error.schema.d.ts +11 -0
  282. package/src/schemas/error.schema.js +14 -0
  283. package/src/schemas/error.schema.js.map +1 -0
  284. package/src/schemas/file.schema.d.ts +115 -0
  285. package/src/schemas/file.schema.js +79 -0
  286. package/src/schemas/file.schema.js.map +1 -0
  287. package/src/schemas/fulfilment.schema.d.ts +2 -0
  288. package/src/schemas/fulfilment.schema.js +5 -0
  289. package/src/schemas/fulfilment.schema.js.map +1 -0
  290. package/src/schemas/headers.schema.d.ts +11 -0
  291. package/src/schemas/headers.schema.js +15 -0
  292. package/src/schemas/headers.schema.js.map +1 -0
  293. package/src/schemas/index.d.ts +27 -0
  294. package/src/schemas/index.js +28 -0
  295. package/src/schemas/index.js.map +1 -0
  296. package/src/schemas/legal-entity.schema.d.ts +212 -0
  297. package/src/schemas/legal-entity.schema.js +85 -0
  298. package/src/schemas/legal-entity.schema.js.map +1 -0
  299. package/src/schemas/locales.schema.d.ts +8 -0
  300. package/src/schemas/locales.schema.js +240 -0
  301. package/src/schemas/locales.schema.js.map +1 -0
  302. package/src/schemas/location.schema.d.ts +41 -0
  303. package/src/schemas/location.schema.js +50 -0
  304. package/src/schemas/location.schema.js.map +1 -0
  305. package/src/schemas/manufacturer.schema.d.ts +287 -0
  306. package/src/schemas/manufacturer.schema.js +127 -0
  307. package/src/schemas/manufacturer.schema.js.map +1 -0
  308. package/src/schemas/number.schema.d.ts +3 -0
  309. package/src/schemas/number.schema.js +29 -0
  310. package/src/schemas/number.schema.js.map +1 -0
  311. package/src/schemas/order.schema.d.ts +1046 -0
  312. package/src/schemas/order.schema.js +160 -0
  313. package/src/schemas/order.schema.js.map +1 -0
  314. package/src/schemas/organization-configuration.schema.d.ts +287 -0
  315. package/src/schemas/organization-configuration.schema.js +117 -0
  316. package/src/schemas/organization-configuration.schema.js.map +1 -0
  317. package/src/schemas/organization.schema.d.ts +894 -0
  318. package/src/schemas/organization.schema.js +66 -0
  319. package/src/schemas/organization.schema.js.map +1 -0
  320. package/src/schemas/pagination.schema.d.ts +51 -0
  321. package/src/schemas/pagination.schema.js +54 -0
  322. package/src/schemas/pagination.schema.js.map +1 -0
  323. package/src/schemas/params.schema.d.ts +19 -0
  324. package/src/schemas/params.schema.js +22 -0
  325. package/src/schemas/params.schema.js.map +1 -0
  326. package/src/schemas/payment.schema.d.ts +54 -0
  327. package/src/schemas/payment.schema.js +48 -0
  328. package/src/schemas/payment.schema.js.map +1 -0
  329. package/src/schemas/product-category.schema.d.ts +352 -0
  330. package/src/schemas/product-category.schema.js +87 -0
  331. package/src/schemas/product-category.schema.js.map +1 -0
  332. package/src/schemas/product-modifier.schema.d.ts +280 -0
  333. package/src/schemas/product-modifier.schema.js +86 -0
  334. package/src/schemas/product-modifier.schema.js.map +1 -0
  335. package/src/schemas/product.schema.d.ts +1405 -0
  336. package/src/schemas/product.schema.js +136 -0
  337. package/src/schemas/product.schema.js.map +1 -0
  338. package/src/schemas/queries.schema.d.ts +8 -0
  339. package/src/schemas/queries.schema.js +8 -0
  340. package/src/schemas/queries.schema.js.map +1 -0
  341. package/src/schemas/recipient.schema.d.ts +260 -0
  342. package/src/schemas/recipient.schema.js +40 -0
  343. package/src/schemas/recipient.schema.js.map +1 -0
  344. package/src/schemas/reservation.schema.d.ts +61 -0
  345. package/src/schemas/reservation.schema.js +53 -0
  346. package/src/schemas/reservation.schema.js.map +1 -0
  347. package/src/schemas/shipping-method.schema.d.ts +335 -0
  348. package/src/schemas/shipping-method.schema.js +50 -0
  349. package/src/schemas/shipping-method.schema.js.map +1 -0
  350. package/src/schemas/shipping-zone.schema.d.ts +24 -0
  351. package/src/schemas/shipping-zone.schema.js +33 -0
  352. package/src/schemas/shipping-zone.schema.js.map +1 -0
  353. package/src/schemas/user.schema.d.ts +24 -0
  354. package/src/schemas/user.schema.js +32 -0
  355. package/src/schemas/user.schema.js.map +1 -0
  356. package/src/services/cart.service.d.ts +60 -0
  357. package/src/services/cart.service.js +97 -0
  358. package/src/services/cart.service.js.map +1 -0
  359. package/src/services/email.service.d.ts +32 -0
  360. package/src/services/email.service.js +116 -0
  361. package/src/services/email.service.js.map +1 -0
  362. package/src/services/file.service.d.ts +28 -0
  363. package/src/services/file.service.js +66 -0
  364. package/src/services/file.service.js.map +1 -0
  365. package/src/services/location.service.d.ts +28 -0
  366. package/src/services/location.service.js +109 -0
  367. package/src/services/location.service.js.map +1 -0
  368. package/src/services/manufacturer.service.d.ts +146 -0
  369. package/src/services/manufacturer.service.js +190 -0
  370. package/src/services/manufacturer.service.js.map +1 -0
  371. package/src/services/order.service.d.ts +444 -0
  372. package/src/services/order.service.js +306 -0
  373. package/src/services/order.service.js.map +1 -0
  374. package/src/services/organization.service.d.ts +301 -0
  375. package/src/services/organization.service.js +312 -0
  376. package/src/services/organization.service.js.map +1 -0
  377. package/src/services/payment.service.d.ts +35 -0
  378. package/src/services/payment.service.js +100 -0
  379. package/src/services/payment.service.js.map +1 -0
  380. package/src/services/product-category.service.d.ts +180 -0
  381. package/src/services/product-category.service.js +220 -0
  382. package/src/services/product-category.service.js.map +1 -0
  383. package/src/services/product.service.d.ts +493 -0
  384. package/src/services/product.service.js +437 -0
  385. package/src/services/product.service.js.map +1 -0
  386. package/src/services/reservation.service.d.ts +104 -0
  387. package/src/services/reservation.service.js +231 -0
  388. package/src/services/reservation.service.js.map +1 -0
  389. package/src/services/shipping-method.service.d.ts +206 -0
  390. package/src/services/shipping-method.service.js +229 -0
  391. package/src/services/shipping-method.service.js.map +1 -0
  392. package/src/services/shipping.service.d.ts +57 -0
  393. package/src/services/shipping.service.js +96 -0
  394. package/src/services/shipping.service.js.map +1 -0
  395. package/src/services/stripe.service.d.ts +26 -0
  396. package/src/services/stripe.service.js +164 -0
  397. package/src/services/stripe.service.js.map +1 -0
  398. package/src/types/google-maps.types.d.ts +53 -0
  399. package/src/types/google-maps.types.js +2 -0
  400. package/src/types/google-maps.types.js.map +1 -0
  401. package/src/utils/auth.util.d.ts +3 -0
  402. package/src/utils/auth.util.js +36 -0
  403. package/src/utils/auth.util.js.map +1 -0
  404. package/src/utils/cart.util.d.ts +27 -0
  405. package/src/utils/cart.util.js +76 -0
  406. package/src/utils/cart.util.js.map +1 -0
  407. package/src/utils/client.util.d.ts +3853 -0
  408. package/src/utils/client.util.js +6 -0
  409. package/src/utils/client.util.js.map +1 -0
  410. package/src/utils/currency.util.d.ts +1 -0
  411. package/src/utils/currency.util.js +11 -0
  412. package/src/utils/currency.util.js.map +1 -0
  413. package/src/utils/env.util.d.ts +2 -0
  414. package/src/utils/env.util.js +8 -0
  415. package/src/utils/env.util.js.map +1 -0
  416. package/src/utils/error-handler.util.d.ts +3 -0
  417. package/src/utils/error-handler.util.js +30 -0
  418. package/src/utils/error-handler.util.js.map +1 -0
  419. package/src/utils/generate-password-hash.util.d.ts +7 -0
  420. package/src/utils/generate-password-hash.util.js +30 -0
  421. package/src/utils/generate-password-hash.util.js.map +1 -0
  422. package/src/utils/object.util.d.ts +11 -0
  423. package/src/utils/object.util.js +39 -0
  424. package/src/utils/object.util.js.map +1 -0
  425. package/src/utils/translations.util.d.ts +0 -0
  426. package/src/utils/translations.util.js +2 -0
  427. package/src/utils/translations.util.js.map +1 -0
  428. package/src/utils/zod.util.d.ts +15 -0
  429. package/src/utils/zod.util.js +85 -0
  430. package/src/utils/zod.util.js.map +1 -0
@@ -0,0 +1,437 @@
1
+ import { __awaiter } from "tslib";
2
+ import { z } from "zod";
3
+ import { HttpException } from "../exceptions/http-exception";
4
+ import { LocalizedProductSchema, PaginationMetaSchema, ProductSchema, } from "../schemas";
5
+ import { flattenTranslationData } from "../utils/zod.util";
6
+ class ProductService {
7
+ constructor(prisma) {
8
+ this.prisma = prisma;
9
+ }
10
+ /**
11
+ * Find a product by ID and organization ID
12
+ * @throws HttpException with 404 status if product is not found
13
+ */
14
+ findProduct(id, organizationId, options) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const product = yield this.prisma.product.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 (!product) {
25
+ throw new HttpException(404, "Product not found");
26
+ }
27
+ return product;
28
+ });
29
+ }
30
+ /**
31
+ * Create a new product
32
+ */
33
+ createProduct(organizationId, userId, body) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const product = yield this.prisma.$transaction((tx) => __awaiter(this, void 0, void 0, function* () {
36
+ var _a, _b;
37
+ // Create the product
38
+ const product = yield tx.product.create({
39
+ data: Object.assign({ slug: body.slug, sku: body.sku, basePrice: body.basePrice, discountedBasePrice: body.discountedBasePrice, currency: body.currency, organizationId: organizationId, manufacturerId: body.manufacturerId, createdBy: userId, translations: {
40
+ create: body.translations,
41
+ }, images: {
42
+ connect: (_a = body.images) === null || _a === void 0 ? void 0 : _a.map((image) => ({ id: image.id })),
43
+ }, modifierGroups: {
44
+ create: (_b = body.modifierGroups) === null || _b === void 0 ? void 0 : _b.map((group) => ({
45
+ selectMin: group.selectMin,
46
+ selectMax: group.selectMax,
47
+ translations: {
48
+ create: group.translations,
49
+ },
50
+ modifiers: {
51
+ create: group.modifiers,
52
+ },
53
+ })),
54
+ } }, (body.categories
55
+ ? {
56
+ categories: {
57
+ connect: body.categories.map((id) => ({ id })),
58
+ },
59
+ }
60
+ : undefined)),
61
+ include: {
62
+ translations: true,
63
+ images: true,
64
+ categories: {
65
+ include: {
66
+ translations: true,
67
+ },
68
+ },
69
+ modifierGroups: {
70
+ include: {
71
+ translations: true,
72
+ modifiers: true,
73
+ },
74
+ },
75
+ },
76
+ });
77
+ // Create the product snapshot
78
+ const snapshot = yield tx.productSnapshot.create({
79
+ data: {
80
+ productId: product.id,
81
+ data: product,
82
+ createdBy: userId,
83
+ },
84
+ });
85
+ // Update the product with the snapshot id as latestSnapshotId
86
+ yield tx.product.update({
87
+ where: { id: product.id },
88
+ data: {
89
+ latestSnapshotId: snapshot.id,
90
+ },
91
+ });
92
+ return product;
93
+ }));
94
+ return ProductSchema.parse(product);
95
+ });
96
+ }
97
+ /**
98
+ * Get a product by ID
99
+ */
100
+ getProduct(organizationId, id, query) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ const { locale } = query;
103
+ const product = yield this.findProduct(id, organizationId, {
104
+ include: {
105
+ translations: locale
106
+ ? {
107
+ where: { locale },
108
+ }
109
+ : true,
110
+ images: true,
111
+ categories: {
112
+ include: {
113
+ translations: locale
114
+ ? {
115
+ where: { locale },
116
+ }
117
+ : true,
118
+ },
119
+ },
120
+ modifierGroups: {
121
+ include: {
122
+ translations: locale
123
+ ? {
124
+ where: { locale },
125
+ }
126
+ : true,
127
+ modifiers: true,
128
+ },
129
+ },
130
+ },
131
+ });
132
+ if (!locale) {
133
+ return ProductSchema.parse(product);
134
+ }
135
+ return LocalizedProductSchema.parse(flattenTranslationData(product));
136
+ });
137
+ }
138
+ /**
139
+ * Get a paginated list of products
140
+ */
141
+ getProducts(organizationId, query) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const { page = 1, limit = 10, search, locale, published } = query;
144
+ const [list, meta] = yield this.prisma.product
145
+ .paginate({
146
+ orderBy: {
147
+ createdAt: "desc",
148
+ },
149
+ where: Object.assign(Object.assign({ organizationId, deletedAt: null }, (search && {
150
+ translations: {
151
+ some: {
152
+ title: {
153
+ contains: search,
154
+ mode: "insensitive",
155
+ },
156
+ },
157
+ },
158
+ })), (published && {
159
+ publishedAt: {
160
+ not: null,
161
+ },
162
+ })),
163
+ include: {
164
+ translations: locale
165
+ ? {
166
+ where: { locale },
167
+ }
168
+ : true,
169
+ images: true,
170
+ categories: {
171
+ include: {
172
+ translations: locale
173
+ ? {
174
+ where: { locale },
175
+ }
176
+ : true,
177
+ },
178
+ },
179
+ modifierGroups: {
180
+ include: {
181
+ translations: locale
182
+ ? {
183
+ where: { locale },
184
+ }
185
+ : true,
186
+ modifiers: true,
187
+ },
188
+ },
189
+ },
190
+ })
191
+ .withPages({
192
+ page,
193
+ limit,
194
+ });
195
+ if (!locale) {
196
+ // Return standard response with ProductSchema
197
+ return z
198
+ .object({
199
+ meta: PaginationMetaSchema,
200
+ list: z.array(ProductSchema),
201
+ })
202
+ .parse({
203
+ meta,
204
+ list,
205
+ });
206
+ }
207
+ // Process the list for localization
208
+ const localizedList = list.map((item) => flattenTranslationData(item));
209
+ // Return localized response with LocalizedProductSchema
210
+ return z
211
+ .object({
212
+ meta: PaginationMetaSchema,
213
+ list: z.array(LocalizedProductSchema),
214
+ })
215
+ .parse({
216
+ meta,
217
+ list: localizedList,
218
+ });
219
+ });
220
+ }
221
+ /**
222
+ * Get products by category
223
+ */
224
+ getProductsByCategory(organizationId, categoryId, query) {
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ const { page = 1, limit = 10, search, locale } = query;
227
+ const [list, meta] = yield this.prisma.product
228
+ .paginate({
229
+ orderBy: {
230
+ createdAt: "desc",
231
+ },
232
+ where: Object.assign({ organizationId, deletedAt: null, categories: {
233
+ some: {
234
+ id: categoryId,
235
+ },
236
+ } }, (search && {
237
+ translations: {
238
+ some: {
239
+ title: {
240
+ contains: search,
241
+ mode: "insensitive",
242
+ },
243
+ },
244
+ },
245
+ })),
246
+ include: {
247
+ translations: locale
248
+ ? {
249
+ where: { locale },
250
+ }
251
+ : true,
252
+ images: true,
253
+ categories: {
254
+ include: {
255
+ translations: locale
256
+ ? {
257
+ where: { locale },
258
+ }
259
+ : true,
260
+ },
261
+ },
262
+ modifierGroups: {
263
+ include: {
264
+ translations: locale
265
+ ? {
266
+ where: { locale },
267
+ }
268
+ : true,
269
+ modifiers: true,
270
+ },
271
+ },
272
+ },
273
+ })
274
+ .withPages({
275
+ page,
276
+ limit,
277
+ });
278
+ // For getProductsByCategory, we always use ProductSchema as specified in the contract
279
+ const processedList = locale
280
+ ? list.map((item) => ProductSchema.parse(flattenTranslationData(item)))
281
+ : list.map((item) => ProductSchema.parse(item));
282
+ return z
283
+ .object({
284
+ meta: PaginationMetaSchema,
285
+ list: z.array(ProductSchema),
286
+ })
287
+ .parse({
288
+ meta,
289
+ list: processedList,
290
+ });
291
+ });
292
+ }
293
+ /**
294
+ * Update a product
295
+ */
296
+ updateProduct(organizationId, id, userId, body) {
297
+ return __awaiter(this, void 0, void 0, function* () {
298
+ // Fetch the product by id
299
+ yield this.findProduct(id, organizationId);
300
+ const updatedProduct = yield this.prisma.$transaction((tx) => __awaiter(this, void 0, void 0, function* () {
301
+ var _a, _b, _c;
302
+ // Update the product
303
+ const product = yield tx.product.update({
304
+ where: {
305
+ id,
306
+ organizationId,
307
+ deletedAt: null,
308
+ },
309
+ data: {
310
+ slug: body.slug,
311
+ sku: body.sku,
312
+ basePrice: body.basePrice,
313
+ discountedBasePrice: body.discountedBasePrice,
314
+ currency: body.currency,
315
+ manufacturerId: body.manufacturerId,
316
+ updatedBy: userId,
317
+ translations: {
318
+ deleteMany: {},
319
+ create: body.translations || [],
320
+ },
321
+ images: {
322
+ set: ((_a = body.images) === null || _a === void 0 ? void 0 : _a.map((image) => ({ id: image.id }))) || [],
323
+ },
324
+ modifierGroups: {
325
+ deleteMany: {},
326
+ create: (_b = body.modifierGroups) === null || _b === void 0 ? void 0 : _b.map((group) => ({
327
+ selectMin: group.selectMin,
328
+ selectMax: group.selectMax,
329
+ translations: {
330
+ create: group.translations,
331
+ },
332
+ modifiers: {
333
+ create: group.modifiers,
334
+ },
335
+ })),
336
+ },
337
+ categories: {
338
+ set: ((_c = body.categories) === null || _c === void 0 ? void 0 : _c.map((id) => ({ id }))) || [],
339
+ },
340
+ },
341
+ include: {
342
+ translations: true,
343
+ images: true,
344
+ categories: {
345
+ include: {
346
+ translations: true,
347
+ },
348
+ },
349
+ modifierGroups: {
350
+ include: {
351
+ translations: true,
352
+ modifiers: true,
353
+ },
354
+ },
355
+ },
356
+ });
357
+ // Create a new product snapshot
358
+ const snapshot = yield tx.productSnapshot.create({
359
+ data: {
360
+ productId: product.id,
361
+ data: product,
362
+ createdBy: userId,
363
+ },
364
+ });
365
+ // Update the product with the new snapshot id
366
+ yield tx.product.update({
367
+ where: { id: product.id },
368
+ data: {
369
+ latestSnapshotId: snapshot.id,
370
+ },
371
+ });
372
+ return product;
373
+ }));
374
+ return ProductSchema.parse(updatedProduct);
375
+ });
376
+ }
377
+ /**
378
+ * Update product status (publish/unpublish)
379
+ */
380
+ updateProductStatus(organizationId, id, operation, userId) {
381
+ return __awaiter(this, void 0, void 0, function* () {
382
+ // Fetch the product by id
383
+ yield this.findProduct(id, organizationId);
384
+ const updatedProduct = yield this.prisma.product.update({
385
+ where: {
386
+ id,
387
+ organizationId,
388
+ deletedAt: null,
389
+ },
390
+ data: {
391
+ publishedAt: operation === "publish" ? new Date() : null,
392
+ publishedBy: operation === "publish" ? userId : null,
393
+ updatedBy: userId,
394
+ },
395
+ include: {
396
+ translations: true,
397
+ images: true,
398
+ categories: {
399
+ include: {
400
+ translations: true,
401
+ },
402
+ },
403
+ modifierGroups: {
404
+ include: {
405
+ translations: true,
406
+ modifiers: true,
407
+ },
408
+ },
409
+ },
410
+ });
411
+ return ProductSchema.parse(updatedProduct);
412
+ });
413
+ }
414
+ /**
415
+ * Delete a product (soft delete)
416
+ */
417
+ deleteProduct(organizationId, id, userId) {
418
+ return __awaiter(this, void 0, void 0, function* () {
419
+ // Fetch the product by id
420
+ yield this.findProduct(id, organizationId);
421
+ yield this.prisma.product.update({
422
+ where: {
423
+ id,
424
+ organizationId,
425
+ deletedAt: null,
426
+ },
427
+ data: {
428
+ deletedAt: new Date(),
429
+ deletedBy: userId,
430
+ },
431
+ });
432
+ return;
433
+ });
434
+ }
435
+ }
436
+ export { ProductService };
437
+ //# sourceMappingURL=product.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.service.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/services/product.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { z } from "zod";
2
+ import { PrismaClientType } from "../lib/prisma";
3
+ import { CreateReservationSchema, User } from "../schemas";
4
+ declare class ReservationService {
5
+ private readonly prisma;
6
+ private emailService;
7
+ constructor(prisma: PrismaClientType, resendApiKey: string);
8
+ /**
9
+ * Create a new reservation
10
+ */
11
+ createReservation(organizationId: string, user: User | null, body: z.infer<typeof CreateReservationSchema>): Promise<{
12
+ id: string;
13
+ date: Date;
14
+ firstname: string;
15
+ lastname: string;
16
+ phone: string;
17
+ referenceId: string;
18
+ guests: number;
19
+ createdAt?: Date | null | undefined;
20
+ acceptedAt?: Date | null | undefined;
21
+ cancelledAt?: Date | null | undefined;
22
+ }>;
23
+ /**
24
+ * Get a specific reservation by ID
25
+ */
26
+ getReservation(user: User, organizationId: string, reservationId: string): Promise<{
27
+ id: string;
28
+ date: Date;
29
+ firstname: string;
30
+ lastname: string;
31
+ phone: string;
32
+ referenceId: string;
33
+ guests: number;
34
+ createdAt?: Date | null | undefined;
35
+ acceptedAt?: Date | null | undefined;
36
+ cancelledAt?: Date | null | undefined;
37
+ }>;
38
+ /**
39
+ * Get all reservations for an organization
40
+ */
41
+ getReservations(organizationId: string, query: {
42
+ page?: number;
43
+ limit?: number;
44
+ search?: string;
45
+ locale?: string | null;
46
+ }): Promise<{
47
+ meta: {
48
+ isFirstPage: boolean;
49
+ isLastPage: boolean;
50
+ currentPage: number;
51
+ previousPage: number | null;
52
+ nextPage: number | null;
53
+ pageCount: number;
54
+ totalCount: number;
55
+ };
56
+ list: {
57
+ id: string;
58
+ date: Date;
59
+ firstname: string;
60
+ lastname: string;
61
+ phone: string;
62
+ referenceId: string;
63
+ guests: number;
64
+ createdAt?: Date | null | undefined;
65
+ acceptedAt?: Date | null | undefined;
66
+ cancelledAt?: Date | null | undefined;
67
+ }[];
68
+ }>;
69
+ /**
70
+ * Get all reservations for a user
71
+ */
72
+ getUserReservations(userId: string, organizationId: string): Promise<{
73
+ id: string;
74
+ date: Date;
75
+ firstname: string;
76
+ lastname: string;
77
+ phone: string;
78
+ referenceId: string;
79
+ guests: number;
80
+ createdAt?: Date | null | undefined;
81
+ acceptedAt?: Date | null | undefined;
82
+ cancelledAt?: Date | null | undefined;
83
+ }[]>;
84
+ /**
85
+ * Update reservation status
86
+ */
87
+ updateStatus(organizationId: string, reservationId: string, operation: "accept" | "cancel"): Promise<{
88
+ id: string;
89
+ date: Date;
90
+ firstname: string;
91
+ lastname: string;
92
+ phone: string;
93
+ referenceId: string;
94
+ guests: number;
95
+ createdAt?: Date | null | undefined;
96
+ acceptedAt?: Date | null | undefined;
97
+ cancelledAt?: Date | null | undefined;
98
+ }>;
99
+ /**
100
+ * Delete a reservation
101
+ */
102
+ deleteReservation(organizationId: string, reservationId: string): Promise<void>;
103
+ }
104
+ export { ReservationService };