@commercejs/platform 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 (402) hide show
  1. package/README.md +156 -0
  2. package/dist/__tests__/platform.drizzle.test.d.ts +2 -0
  3. package/dist/__tests__/platform.drizzle.test.d.ts.map +1 -0
  4. package/dist/__tests__/platform.drizzle.test.js +27 -0
  5. package/dist/__tests__/platform.drizzle.test.js.map +1 -0
  6. package/dist/__tests__/platform.prisma.test.d.ts +2 -0
  7. package/dist/__tests__/platform.prisma.test.d.ts.map +1 -0
  8. package/dist/__tests__/platform.prisma.test.js +27 -0
  9. package/dist/__tests__/platform.prisma.test.js.map +1 -0
  10. package/dist/__tests__/platform.suite.d.ts +8 -0
  11. package/dist/__tests__/platform.suite.d.ts.map +1 -0
  12. package/dist/__tests__/platform.suite.js +406 -0
  13. package/dist/__tests__/platform.suite.js.map +1 -0
  14. package/dist/adapter.d.ts +20 -0
  15. package/dist/adapter.d.ts.map +1 -0
  16. package/dist/adapter.js +122 -0
  17. package/dist/adapter.js.map +1 -0
  18. package/dist/database/drizzle/client.d.ts +13 -0
  19. package/dist/database/drizzle/client.d.ts.map +1 -0
  20. package/dist/database/drizzle/client.js +29 -0
  21. package/dist/database/drizzle/client.js.map +1 -0
  22. package/dist/database/drizzle/index.d.ts +5 -0
  23. package/dist/database/drizzle/index.d.ts.map +1 -0
  24. package/dist/database/drizzle/index.js +7 -0
  25. package/dist/database/drizzle/index.js.map +1 -0
  26. package/dist/database/drizzle/migrate.d.ts +9 -0
  27. package/dist/database/drizzle/migrate.d.ts.map +1 -0
  28. package/dist/database/drizzle/migrate.js +317 -0
  29. package/dist/database/drizzle/migrate.js.map +1 -0
  30. package/dist/database/drizzle/queries/brands.d.ts +26 -0
  31. package/dist/database/drizzle/queries/brands.d.ts.map +1 -0
  32. package/dist/database/drizzle/queries/brands.js +19 -0
  33. package/dist/database/drizzle/queries/brands.js.map +1 -0
  34. package/dist/database/drizzle/queries/cart.d.ts +61 -0
  35. package/dist/database/drizzle/queries/cart.d.ts.map +1 -0
  36. package/dist/database/drizzle/queries/cart.js +57 -0
  37. package/dist/database/drizzle/queries/cart.js.map +1 -0
  38. package/dist/database/drizzle/queries/catalog.d.ts +149 -0
  39. package/dist/database/drizzle/queries/catalog.d.ts.map +1 -0
  40. package/dist/database/drizzle/queries/catalog.js +88 -0
  41. package/dist/database/drizzle/queries/catalog.js.map +1 -0
  42. package/dist/database/drizzle/queries/countries.d.ts +22 -0
  43. package/dist/database/drizzle/queries/countries.d.ts.map +1 -0
  44. package/dist/database/drizzle/queries/countries.js +19 -0
  45. package/dist/database/drizzle/queries/countries.js.map +1 -0
  46. package/dist/database/drizzle/queries/customers.d.ts +87 -0
  47. package/dist/database/drizzle/queries/customers.d.ts.map +1 -0
  48. package/dist/database/drizzle/queries/customers.js +41 -0
  49. package/dist/database/drizzle/queries/customers.js.map +1 -0
  50. package/dist/database/drizzle/queries/index.d.ts +12 -0
  51. package/dist/database/drizzle/queries/index.d.ts.map +1 -0
  52. package/dist/database/drizzle/queries/index.js +28 -0
  53. package/dist/database/drizzle/queries/index.js.map +1 -0
  54. package/dist/database/drizzle/queries/orders.d.ts +74 -0
  55. package/dist/database/drizzle/queries/orders.d.ts.map +1 -0
  56. package/dist/database/drizzle/queries/orders.js +39 -0
  57. package/dist/database/drizzle/queries/orders.js.map +1 -0
  58. package/dist/database/drizzle/queries/promotions.d.ts +61 -0
  59. package/dist/database/drizzle/queries/promotions.d.ts.map +1 -0
  60. package/dist/database/drizzle/queries/promotions.js +39 -0
  61. package/dist/database/drizzle/queries/promotions.js.map +1 -0
  62. package/dist/database/drizzle/queries/returns.d.ts +62 -0
  63. package/dist/database/drizzle/queries/returns.d.ts.map +1 -0
  64. package/dist/database/drizzle/queries/returns.js +58 -0
  65. package/dist/database/drizzle/queries/returns.js.map +1 -0
  66. package/dist/database/drizzle/queries/reviews.d.ts +25 -0
  67. package/dist/database/drizzle/queries/reviews.d.ts.map +1 -0
  68. package/dist/database/drizzle/queries/reviews.js +57 -0
  69. package/dist/database/drizzle/queries/reviews.js.map +1 -0
  70. package/dist/database/drizzle/queries/store.d.ts +22 -0
  71. package/dist/database/drizzle/queries/store.d.ts.map +1 -0
  72. package/dist/database/drizzle/queries/store.js +14 -0
  73. package/dist/database/drizzle/queries/store.js.map +1 -0
  74. package/dist/database/drizzle/queries/wishlists.d.ts +31 -0
  75. package/dist/database/drizzle/queries/wishlists.d.ts.map +1 -0
  76. package/dist/database/drizzle/queries/wishlists.js +44 -0
  77. package/dist/database/drizzle/queries/wishlists.js.map +1 -0
  78. package/dist/database/drizzle/schema/brands.d.ts +196 -0
  79. package/dist/database/drizzle/schema/brands.d.ts.map +1 -0
  80. package/dist/database/drizzle/schema/brands.js +17 -0
  81. package/dist/database/drizzle/schema/brands.js.map +1 -0
  82. package/dist/database/drizzle/schema/carts.d.ts +294 -0
  83. package/dist/database/drizzle/schema/carts.d.ts.map +1 -0
  84. package/dist/database/drizzle/schema/carts.js +28 -0
  85. package/dist/database/drizzle/schema/carts.js.map +1 -0
  86. package/dist/database/drizzle/schema/categories.d.ts +215 -0
  87. package/dist/database/drizzle/schema/categories.d.ts.map +1 -0
  88. package/dist/database/drizzle/schema/categories.js +18 -0
  89. package/dist/database/drizzle/schema/categories.js.map +1 -0
  90. package/dist/database/drizzle/schema/countries.d.ts +158 -0
  91. package/dist/database/drizzle/schema/countries.d.ts.map +1 -0
  92. package/dist/database/drizzle/schema/countries.js +15 -0
  93. package/dist/database/drizzle/schema/countries.js.map +1 -0
  94. package/dist/database/drizzle/schema/customers.d.ts +469 -0
  95. package/dist/database/drizzle/schema/customers.d.ts.map +1 -0
  96. package/dist/database/drizzle/schema/customers.js +33 -0
  97. package/dist/database/drizzle/schema/customers.js.map +1 -0
  98. package/dist/database/drizzle/schema/index.d.ts +13 -0
  99. package/dist/database/drizzle/schema/index.d.ts.map +1 -0
  100. package/dist/database/drizzle/schema/index.js +16 -0
  101. package/dist/database/drizzle/schema/index.js.map +1 -0
  102. package/dist/database/drizzle/schema/orders.d.ts +722 -0
  103. package/dist/database/drizzle/schema/orders.d.ts.map +1 -0
  104. package/dist/database/drizzle/schema/orders.js +63 -0
  105. package/dist/database/drizzle/schema/orders.js.map +1 -0
  106. package/dist/database/drizzle/schema/products.d.ts +1180 -0
  107. package/dist/database/drizzle/schema/products.d.ts.map +1 -0
  108. package/dist/database/drizzle/schema/products.js +99 -0
  109. package/dist/database/drizzle/schema/products.js.map +1 -0
  110. package/dist/database/drizzle/schema/promotions.d.ts +474 -0
  111. package/dist/database/drizzle/schema/promotions.d.ts.map +1 -0
  112. package/dist/database/drizzle/schema/promotions.js +34 -0
  113. package/dist/database/drizzle/schema/promotions.js.map +1 -0
  114. package/dist/database/drizzle/schema/returns.d.ts +467 -0
  115. package/dist/database/drizzle/schema/returns.d.ts.map +1 -0
  116. package/dist/database/drizzle/schema/returns.js +34 -0
  117. package/dist/database/drizzle/schema/returns.js.map +1 -0
  118. package/dist/database/drizzle/schema/reviews.d.ts +175 -0
  119. package/dist/database/drizzle/schema/reviews.d.ts.map +1 -0
  120. package/dist/database/drizzle/schema/reviews.js +17 -0
  121. package/dist/database/drizzle/schema/reviews.js.map +1 -0
  122. package/dist/database/drizzle/schema/store.d.ts +350 -0
  123. package/dist/database/drizzle/schema/store.d.ts.map +1 -0
  124. package/dist/database/drizzle/schema/store.js +25 -0
  125. package/dist/database/drizzle/schema/store.js.map +1 -0
  126. package/dist/database/drizzle/schema/wishlists.d.ts +167 -0
  127. package/dist/database/drizzle/schema/wishlists.d.ts.map +1 -0
  128. package/dist/database/drizzle/schema/wishlists.js +19 -0
  129. package/dist/database/drizzle/schema/wishlists.js.map +1 -0
  130. package/dist/database/drizzle/seed.d.ts +6 -0
  131. package/dist/database/drizzle/seed.d.ts.map +1 -0
  132. package/dist/database/drizzle/seed.js +166 -0
  133. package/dist/database/drizzle/seed.js.map +1 -0
  134. package/dist/database/index.d.ts +8 -0
  135. package/dist/database/index.d.ts.map +1 -0
  136. package/dist/database/index.js +12 -0
  137. package/dist/database/index.js.map +1 -0
  138. package/dist/database/prisma/client.d.ts +13 -0
  139. package/dist/database/prisma/client.d.ts.map +1 -0
  140. package/dist/database/prisma/client.js +25 -0
  141. package/dist/database/prisma/client.js.map +1 -0
  142. package/dist/database/prisma/generated/browser.d.ts +135 -0
  143. package/dist/database/prisma/generated/browser.d.ts.map +1 -0
  144. package/dist/database/prisma/generated/browser.js +18 -0
  145. package/dist/database/prisma/generated/browser.js.map +1 -0
  146. package/dist/database/prisma/generated/client.d.ts +152 -0
  147. package/dist/database/prisma/generated/client.d.ts.map +1 -0
  148. package/dist/database/prisma/generated/client.js +33 -0
  149. package/dist/database/prisma/generated/client.js.map +1 -0
  150. package/dist/database/prisma/generated/commonInputTypes.d.ts +344 -0
  151. package/dist/database/prisma/generated/commonInputTypes.d.ts.map +1 -0
  152. package/dist/database/prisma/generated/commonInputTypes.js +11 -0
  153. package/dist/database/prisma/generated/commonInputTypes.js.map +1 -0
  154. package/dist/database/prisma/generated/enums.d.ts +2 -0
  155. package/dist/database/prisma/generated/enums.d.ts.map +1 -0
  156. package/dist/database/prisma/generated/enums.js +11 -0
  157. package/dist/database/prisma/generated/enums.js.map +1 -0
  158. package/dist/database/prisma/generated/internal/class.d.ts +402 -0
  159. package/dist/database/prisma/generated/internal/class.d.ts.map +1 -0
  160. package/dist/database/prisma/generated/internal/class.js +42 -0
  161. package/dist/database/prisma/generated/internal/class.js.map +1 -0
  162. package/dist/database/prisma/generated/internal/prismaNamespace.d.ts +2735 -0
  163. package/dist/database/prisma/generated/internal/prismaNamespace.d.ts.map +1 -0
  164. package/dist/database/prisma/generated/internal/prismaNamespace.js +415 -0
  165. package/dist/database/prisma/generated/internal/prismaNamespace.js.map +1 -0
  166. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts +400 -0
  167. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  168. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js +386 -0
  169. package/dist/database/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
  170. package/dist/database/prisma/generated/models/Brand.d.ts +1141 -0
  171. package/dist/database/prisma/generated/models/Brand.d.ts.map +1 -0
  172. package/dist/database/prisma/generated/models/Brand.js +2 -0
  173. package/dist/database/prisma/generated/models/Brand.js.map +1 -0
  174. package/dist/database/prisma/generated/models/Cart.d.ts +1464 -0
  175. package/dist/database/prisma/generated/models/Cart.d.ts.map +1 -0
  176. package/dist/database/prisma/generated/models/Cart.js +2 -0
  177. package/dist/database/prisma/generated/models/Cart.js.map +1 -0
  178. package/dist/database/prisma/generated/models/CartItem.d.ts +1487 -0
  179. package/dist/database/prisma/generated/models/CartItem.d.ts.map +1 -0
  180. package/dist/database/prisma/generated/models/CartItem.js +2 -0
  181. package/dist/database/prisma/generated/models/CartItem.js.map +1 -0
  182. package/dist/database/prisma/generated/models/Category.d.ts +1717 -0
  183. package/dist/database/prisma/generated/models/Category.d.ts.map +1 -0
  184. package/dist/database/prisma/generated/models/Category.js +2 -0
  185. package/dist/database/prisma/generated/models/Category.js.map +1 -0
  186. package/dist/database/prisma/generated/models/Country.d.ts +1076 -0
  187. package/dist/database/prisma/generated/models/Country.d.ts.map +1 -0
  188. package/dist/database/prisma/generated/models/Country.js +2 -0
  189. package/dist/database/prisma/generated/models/Country.js.map +1 -0
  190. package/dist/database/prisma/generated/models/Coupon.d.ts +1242 -0
  191. package/dist/database/prisma/generated/models/Coupon.d.ts.map +1 -0
  192. package/dist/database/prisma/generated/models/Coupon.js +2 -0
  193. package/dist/database/prisma/generated/models/Coupon.js.map +1 -0
  194. package/dist/database/prisma/generated/models/Customer.d.ts +1536 -0
  195. package/dist/database/prisma/generated/models/Customer.d.ts.map +1 -0
  196. package/dist/database/prisma/generated/models/Customer.js +2 -0
  197. package/dist/database/prisma/generated/models/Customer.js.map +1 -0
  198. package/dist/database/prisma/generated/models/CustomerAddress.d.ts +1519 -0
  199. package/dist/database/prisma/generated/models/CustomerAddress.d.ts.map +1 -0
  200. package/dist/database/prisma/generated/models/CustomerAddress.js +2 -0
  201. package/dist/database/prisma/generated/models/CustomerAddress.js.map +1 -0
  202. package/dist/database/prisma/generated/models/Order.d.ts +2136 -0
  203. package/dist/database/prisma/generated/models/Order.d.ts.map +1 -0
  204. package/dist/database/prisma/generated/models/Order.js +2 -0
  205. package/dist/database/prisma/generated/models/Order.js.map +1 -0
  206. package/dist/database/prisma/generated/models/OrderHistory.d.ts +1204 -0
  207. package/dist/database/prisma/generated/models/OrderHistory.d.ts.map +1 -0
  208. package/dist/database/prisma/generated/models/OrderHistory.js +2 -0
  209. package/dist/database/prisma/generated/models/OrderHistory.js.map +1 -0
  210. package/dist/database/prisma/generated/models/OrderItem.d.ts +1464 -0
  211. package/dist/database/prisma/generated/models/OrderItem.d.ts.map +1 -0
  212. package/dist/database/prisma/generated/models/OrderItem.js +2 -0
  213. package/dist/database/prisma/generated/models/OrderItem.js.map +1 -0
  214. package/dist/database/prisma/generated/models/Product.d.ts +2969 -0
  215. package/dist/database/prisma/generated/models/Product.d.ts.map +1 -0
  216. package/dist/database/prisma/generated/models/Product.js +2 -0
  217. package/dist/database/prisma/generated/models/Product.js.map +1 -0
  218. package/dist/database/prisma/generated/models/ProductAttribute.d.ts +1239 -0
  219. package/dist/database/prisma/generated/models/ProductAttribute.d.ts.map +1 -0
  220. package/dist/database/prisma/generated/models/ProductAttribute.js +2 -0
  221. package/dist/database/prisma/generated/models/ProductAttribute.js.map +1 -0
  222. package/dist/database/prisma/generated/models/ProductCategory.d.ts +1154 -0
  223. package/dist/database/prisma/generated/models/ProductCategory.d.ts.map +1 -0
  224. package/dist/database/prisma/generated/models/ProductCategory.js +2 -0
  225. package/dist/database/prisma/generated/models/ProductCategory.js.map +1 -0
  226. package/dist/database/prisma/generated/models/ProductImage.d.ts +1242 -0
  227. package/dist/database/prisma/generated/models/ProductImage.d.ts.map +1 -0
  228. package/dist/database/prisma/generated/models/ProductImage.js +2 -0
  229. package/dist/database/prisma/generated/models/ProductImage.js.map +1 -0
  230. package/dist/database/prisma/generated/models/ProductOption.d.ts +1328 -0
  231. package/dist/database/prisma/generated/models/ProductOption.d.ts.map +1 -0
  232. package/dist/database/prisma/generated/models/ProductOption.js +2 -0
  233. package/dist/database/prisma/generated/models/ProductOption.js.map +1 -0
  234. package/dist/database/prisma/generated/models/ProductOptionValue.d.ts +1207 -0
  235. package/dist/database/prisma/generated/models/ProductOptionValue.d.ts.map +1 -0
  236. package/dist/database/prisma/generated/models/ProductOptionValue.js +2 -0
  237. package/dist/database/prisma/generated/models/ProductOptionValue.js.map +1 -0
  238. package/dist/database/prisma/generated/models/ProductTag.d.ts +1099 -0
  239. package/dist/database/prisma/generated/models/ProductTag.d.ts.map +1 -0
  240. package/dist/database/prisma/generated/models/ProductTag.js +2 -0
  241. package/dist/database/prisma/generated/models/ProductTag.js.map +1 -0
  242. package/dist/database/prisma/generated/models/ProductVariant.d.ts +1543 -0
  243. package/dist/database/prisma/generated/models/ProductVariant.d.ts.map +1 -0
  244. package/dist/database/prisma/generated/models/ProductVariant.js +2 -0
  245. package/dist/database/prisma/generated/models/ProductVariant.js.map +1 -0
  246. package/dist/database/prisma/generated/models/Promotion.d.ts +1658 -0
  247. package/dist/database/prisma/generated/models/Promotion.d.ts.map +1 -0
  248. package/dist/database/prisma/generated/models/Promotion.js +2 -0
  249. package/dist/database/prisma/generated/models/Promotion.js.map +1 -0
  250. package/dist/database/prisma/generated/models/Return.d.ts +1448 -0
  251. package/dist/database/prisma/generated/models/Return.d.ts.map +1 -0
  252. package/dist/database/prisma/generated/models/Return.js +2 -0
  253. package/dist/database/prisma/generated/models/Return.js.map +1 -0
  254. package/dist/database/prisma/generated/models/ReturnItem.d.ts +1417 -0
  255. package/dist/database/prisma/generated/models/ReturnItem.d.ts.map +1 -0
  256. package/dist/database/prisma/generated/models/ReturnItem.js +2 -0
  257. package/dist/database/prisma/generated/models/ReturnItem.js.map +1 -0
  258. package/dist/database/prisma/generated/models/Review.d.ts +1142 -0
  259. package/dist/database/prisma/generated/models/Review.d.ts.map +1 -0
  260. package/dist/database/prisma/generated/models/Review.js +2 -0
  261. package/dist/database/prisma/generated/models/Review.js.map +1 -0
  262. package/dist/database/prisma/generated/models/StoreInfo.d.ts +1356 -0
  263. package/dist/database/prisma/generated/models/StoreInfo.d.ts.map +1 -0
  264. package/dist/database/prisma/generated/models/StoreInfo.js +2 -0
  265. package/dist/database/prisma/generated/models/StoreInfo.js.map +1 -0
  266. package/dist/database/prisma/generated/models/Wishlist.d.ts +1090 -0
  267. package/dist/database/prisma/generated/models/Wishlist.d.ts.map +1 -0
  268. package/dist/database/prisma/generated/models/Wishlist.js +2 -0
  269. package/dist/database/prisma/generated/models/Wishlist.js.map +1 -0
  270. package/dist/database/prisma/generated/models/WishlistItem.d.ts +1169 -0
  271. package/dist/database/prisma/generated/models/WishlistItem.d.ts.map +1 -0
  272. package/dist/database/prisma/generated/models/WishlistItem.js +2 -0
  273. package/dist/database/prisma/generated/models/WishlistItem.js.map +1 -0
  274. package/dist/database/prisma/generated/models.d.ts +28 -0
  275. package/dist/database/prisma/generated/models.d.ts.map +1 -0
  276. package/dist/database/prisma/generated/models.js +2 -0
  277. package/dist/database/prisma/generated/models.js.map +1 -0
  278. package/dist/database/prisma/index.d.ts +5 -0
  279. package/dist/database/prisma/index.d.ts.map +1 -0
  280. package/dist/database/prisma/index.js +7 -0
  281. package/dist/database/prisma/index.js.map +1 -0
  282. package/dist/database/prisma/migrate.d.ts +8 -0
  283. package/dist/database/prisma/migrate.d.ts.map +1 -0
  284. package/dist/database/prisma/migrate.js +323 -0
  285. package/dist/database/prisma/migrate.js.map +1 -0
  286. package/dist/database/prisma/queries/brands.d.ts +26 -0
  287. package/dist/database/prisma/queries/brands.d.ts.map +1 -0
  288. package/dist/database/prisma/queries/brands.js +17 -0
  289. package/dist/database/prisma/queries/brands.js.map +1 -0
  290. package/dist/database/prisma/queries/cart.d.ts +61 -0
  291. package/dist/database/prisma/queries/cart.d.ts.map +1 -0
  292. package/dist/database/prisma/queries/cart.js +68 -0
  293. package/dist/database/prisma/queries/cart.js.map +1 -0
  294. package/dist/database/prisma/queries/catalog.d.ts +149 -0
  295. package/dist/database/prisma/queries/catalog.d.ts.map +1 -0
  296. package/dist/database/prisma/queries/catalog.js +94 -0
  297. package/dist/database/prisma/queries/catalog.js.map +1 -0
  298. package/dist/database/prisma/queries/countries.d.ts +22 -0
  299. package/dist/database/prisma/queries/countries.d.ts.map +1 -0
  300. package/dist/database/prisma/queries/countries.js +17 -0
  301. package/dist/database/prisma/queries/countries.js.map +1 -0
  302. package/dist/database/prisma/queries/customers.d.ts +87 -0
  303. package/dist/database/prisma/queries/customers.d.ts.map +1 -0
  304. package/dist/database/prisma/queries/customers.js +32 -0
  305. package/dist/database/prisma/queries/customers.js.map +1 -0
  306. package/dist/database/prisma/queries/index.d.ts +12 -0
  307. package/dist/database/prisma/queries/index.d.ts.map +1 -0
  308. package/dist/database/prisma/queries/index.js +28 -0
  309. package/dist/database/prisma/queries/index.js.map +1 -0
  310. package/dist/database/prisma/queries/orders.d.ts +74 -0
  311. package/dist/database/prisma/queries/orders.d.ts.map +1 -0
  312. package/dist/database/prisma/queries/orders.js +49 -0
  313. package/dist/database/prisma/queries/orders.js.map +1 -0
  314. package/dist/database/prisma/queries/promotions.d.ts +81 -0
  315. package/dist/database/prisma/queries/promotions.d.ts.map +1 -0
  316. package/dist/database/prisma/queries/promotions.js +31 -0
  317. package/dist/database/prisma/queries/promotions.js.map +1 -0
  318. package/dist/database/prisma/queries/returns.d.ts +102 -0
  319. package/dist/database/prisma/queries/returns.d.ts.map +1 -0
  320. package/dist/database/prisma/queries/returns.js +50 -0
  321. package/dist/database/prisma/queries/returns.js.map +1 -0
  322. package/dist/database/prisma/queries/reviews.d.ts +25 -0
  323. package/dist/database/prisma/queries/reviews.d.ts.map +1 -0
  324. package/dist/database/prisma/queries/reviews.js +50 -0
  325. package/dist/database/prisma/queries/reviews.js.map +1 -0
  326. package/dist/database/prisma/queries/store.d.ts +22 -0
  327. package/dist/database/prisma/queries/store.d.ts.map +1 -0
  328. package/dist/database/prisma/queries/store.js +31 -0
  329. package/dist/database/prisma/queries/store.js.map +1 -0
  330. package/dist/database/prisma/queries/wishlists.d.ts +37 -0
  331. package/dist/database/prisma/queries/wishlists.d.ts.map +1 -0
  332. package/dist/database/prisma/queries/wishlists.js +37 -0
  333. package/dist/database/prisma/queries/wishlists.js.map +1 -0
  334. package/dist/database/prisma/seed.d.ts +5 -0
  335. package/dist/database/prisma/seed.d.ts.map +1 -0
  336. package/dist/database/prisma/seed.js +127 -0
  337. package/dist/database/prisma/seed.js.map +1 -0
  338. package/dist/domains/brands.d.ts +5 -0
  339. package/dist/domains/brands.d.ts.map +1 -0
  340. package/dist/domains/brands.js +21 -0
  341. package/dist/domains/brands.js.map +1 -0
  342. package/dist/domains/cart.d.ts +11 -0
  343. package/dist/domains/cart.d.ts.map +1 -0
  344. package/dist/domains/cart.js +110 -0
  345. package/dist/domains/cart.js.map +1 -0
  346. package/dist/domains/catalog.d.ts +7 -0
  347. package/dist/domains/catalog.d.ts.map +1 -0
  348. package/dist/domains/catalog.js +157 -0
  349. package/dist/domains/catalog.js.map +1 -0
  350. package/dist/domains/checkout.d.ts +11 -0
  351. package/dist/domains/checkout.d.ts.map +1 -0
  352. package/dist/domains/checkout.js +174 -0
  353. package/dist/domains/checkout.js.map +1 -0
  354. package/dist/domains/countries.d.ts +5 -0
  355. package/dist/domains/countries.d.ts.map +1 -0
  356. package/dist/domains/countries.js +21 -0
  357. package/dist/domains/countries.js.map +1 -0
  358. package/dist/domains/customers.d.ts +17 -0
  359. package/dist/domains/customers.d.ts.map +1 -0
  360. package/dist/domains/customers.js +179 -0
  361. package/dist/domains/customers.js.map +1 -0
  362. package/dist/domains/helpers.d.ts +14 -0
  363. package/dist/domains/helpers.d.ts.map +1 -0
  364. package/dist/domains/helpers.js +46 -0
  365. package/dist/domains/helpers.js.map +1 -0
  366. package/dist/domains/not-supported.d.ts +31 -0
  367. package/dist/domains/not-supported.d.ts.map +1 -0
  368. package/dist/domains/not-supported.js +43 -0
  369. package/dist/domains/not-supported.js.map +1 -0
  370. package/dist/domains/orders.d.ts +12 -0
  371. package/dist/domains/orders.d.ts.map +1 -0
  372. package/dist/domains/orders.js +184 -0
  373. package/dist/domains/orders.js.map +1 -0
  374. package/dist/domains/promotions.d.ts +6 -0
  375. package/dist/domains/promotions.d.ts.map +1 -0
  376. package/dist/domains/promotions.js +56 -0
  377. package/dist/domains/promotions.js.map +1 -0
  378. package/dist/domains/returns.d.ts +15 -0
  379. package/dist/domains/returns.d.ts.map +1 -0
  380. package/dist/domains/returns.js +83 -0
  381. package/dist/domains/returns.js.map +1 -0
  382. package/dist/domains/reviews.d.ts +16 -0
  383. package/dist/domains/reviews.d.ts.map +1 -0
  384. package/dist/domains/reviews.js +60 -0
  385. package/dist/domains/reviews.js.map +1 -0
  386. package/dist/domains/store.d.ts +5 -0
  387. package/dist/domains/store.d.ts.map +1 -0
  388. package/dist/domains/store.js +45 -0
  389. package/dist/domains/store.js.map +1 -0
  390. package/dist/domains/wishlist.d.ts +9 -0
  391. package/dist/domains/wishlist.d.ts.map +1 -0
  392. package/dist/domains/wishlist.js +76 -0
  393. package/dist/domains/wishlist.js.map +1 -0
  394. package/dist/index.d.ts +9 -0
  395. package/dist/index.d.ts.map +1 -0
  396. package/dist/index.js +15 -0
  397. package/dist/index.js.map +1 -0
  398. package/dist/types.d.ts +8 -0
  399. package/dist/types.d.ts.map +1 -0
  400. package/dist/types.js +5 -0
  401. package/dist/types.js.map +1 -0
  402. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../../src/database/drizzle/schema/products.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCnB,CAAA;AAIF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAA;AAIF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMzB,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAA;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAA;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAA;AAIF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAItB,CAAA"}
@@ -0,0 +1,99 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Products schema — products, variants, images, options, attributes
3
+ // ---------------------------------------------------------------------------
4
+ import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';
5
+ import { categories } from './categories.js';
6
+ // ---- Products ----
7
+ export const products = sqliteTable('products', {
8
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
9
+ sku: text('sku'),
10
+ name: text('name').notNull(),
11
+ nameAr: text('name_ar'),
12
+ slug: text('slug').notNull().unique(),
13
+ description: text('description'),
14
+ descriptionAr: text('description_ar'),
15
+ shortDescription: text('short_description'),
16
+ shortDescriptionAr: text('short_description_ar'),
17
+ // Pricing
18
+ price: real('price'),
19
+ compareAtPrice: real('compare_at_price'),
20
+ currency: text('currency').notNull().default('SAR'),
21
+ // Classification
22
+ productType: text('product_type', {
23
+ enum: ['physical', 'digital', 'service', 'event', 'subscription', 'auction', 'rental', 'gift_card'],
24
+ }).notNull().default('physical'),
25
+ // Stock
26
+ inStock: integer('in_stock', { mode: 'boolean' }).notNull().default(true),
27
+ inventoryQuantity: integer('inventory_quantity'),
28
+ quantityLimit: integer('quantity_limit'),
29
+ // Flags
30
+ vatIncluded: integer('vat_included', { mode: 'boolean' }).notNull().default(true),
31
+ vatRate: real('vat_rate'),
32
+ requiresShipping: integer('requires_shipping', { mode: 'boolean' }).notNull().default(true),
33
+ isDropshipped: integer('is_dropshipped', { mode: 'boolean' }).notNull().default(false),
34
+ // Status
35
+ status: text('status', { enum: ['active', 'draft', 'archived'] }).notNull().default('draft'),
36
+ // Timestamps
37
+ createdAt: text('created_at').notNull().$defaultFn(() => new Date().toISOString()),
38
+ updatedAt: text('updated_at').notNull().$defaultFn(() => new Date().toISOString()),
39
+ });
40
+ // ---- Product Images ----
41
+ export const productImages = sqliteTable('product_images', {
42
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
43
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
44
+ url: text('url').notNull(),
45
+ altText: text('alt_text'),
46
+ sortOrder: integer('sort_order').notNull().default(0),
47
+ isPrimary: integer('is_primary', { mode: 'boolean' }).notNull().default(false),
48
+ });
49
+ // ---- Product Variants ----
50
+ export const productVariants = sqliteTable('product_variants', {
51
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
52
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
53
+ sku: text('sku'),
54
+ name: text('name'),
55
+ nameAr: text('name_ar'),
56
+ price: real('price'),
57
+ compareAtPrice: real('compare_at_price'),
58
+ inStock: integer('in_stock', { mode: 'boolean' }).notNull().default(true),
59
+ inventoryQuantity: integer('inventory_quantity'),
60
+ sortOrder: integer('sort_order').notNull().default(0),
61
+ });
62
+ // ---- Product Options (e.g., Size, Color) ----
63
+ export const productOptions = sqliteTable('product_options', {
64
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
65
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
66
+ name: text('name').notNull(),
67
+ nameAr: text('name_ar'),
68
+ sortOrder: integer('sort_order').notNull().default(0),
69
+ });
70
+ // ---- Product Option Values (e.g., S, M, L, XL) ----
71
+ export const productOptionValues = sqliteTable('product_option_values', {
72
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
73
+ optionId: text('option_id').notNull().references(() => productOptions.id, { onDelete: 'cascade' }),
74
+ name: text('name').notNull(),
75
+ nameAr: text('name_ar'),
76
+ sortOrder: integer('sort_order').notNull().default(0),
77
+ });
78
+ // ---- Product Attributes (key-value metadata) ----
79
+ export const productAttributes = sqliteTable('product_attributes', {
80
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
81
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
82
+ code: text('code').notNull(),
83
+ name: text('name').notNull(),
84
+ nameAr: text('name_ar'),
85
+ value: text('value').notNull(),
86
+ valueAr: text('value_ar'),
87
+ });
88
+ // ---- Product ↔ Category (many-to-many) ----
89
+ export const productCategories = sqliteTable('product_categories', {
90
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
91
+ categoryId: text('category_id').notNull().references(() => categories.id, { onDelete: 'cascade' }),
92
+ });
93
+ // ---- Product Tags ----
94
+ export const productTags = sqliteTable('product_tags', {
95
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
96
+ productId: text('product_id').notNull().references(() => products.id, { onDelete: 'cascade' }),
97
+ tag: text('tag').notNull(),
98
+ });
99
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../../../src/database/drizzle/schema/products.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,474 @@
1
+ export declare const promotions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "promotions";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "promotions";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: true;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "name";
26
+ tableName: "promotions";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ nameAr: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "name_ar";
45
+ tableName: "promotions";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: false;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ description: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "description";
64
+ tableName: "promotions";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: false;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ descriptionAr: import("drizzle-orm/sqlite-core").SQLiteColumn<{
82
+ name: "description_ar";
83
+ tableName: "promotions";
84
+ dataType: "string";
85
+ columnType: "SQLiteText";
86
+ data: string;
87
+ driverParam: string;
88
+ notNull: false;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: [string, ...string[]];
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {
98
+ length: number | undefined;
99
+ }>;
100
+ discountType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
101
+ name: "discount_type";
102
+ tableName: "promotions";
103
+ dataType: "string";
104
+ columnType: "SQLiteText";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: true;
108
+ hasDefault: true;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}, {
117
+ length: number | undefined;
118
+ }>;
119
+ discountValue: import("drizzle-orm/sqlite-core").SQLiteColumn<{
120
+ name: "discount_value";
121
+ tableName: "promotions";
122
+ dataType: "number";
123
+ columnType: "SQLiteReal";
124
+ data: number;
125
+ driverParam: number;
126
+ notNull: true;
127
+ hasDefault: true;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: undefined;
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {}>;
136
+ currency: import("drizzle-orm/sqlite-core").SQLiteColumn<{
137
+ name: "currency";
138
+ tableName: "promotions";
139
+ dataType: "string";
140
+ columnType: "SQLiteText";
141
+ data: string;
142
+ driverParam: string;
143
+ notNull: false;
144
+ hasDefault: false;
145
+ isPrimaryKey: false;
146
+ isAutoincrement: false;
147
+ hasRuntimeDefault: false;
148
+ enumValues: [string, ...string[]];
149
+ baseColumn: never;
150
+ identity: undefined;
151
+ generated: undefined;
152
+ }, {}, {
153
+ length: number | undefined;
154
+ }>;
155
+ maxDiscount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
156
+ name: "max_discount";
157
+ tableName: "promotions";
158
+ dataType: "number";
159
+ columnType: "SQLiteReal";
160
+ data: number;
161
+ driverParam: number;
162
+ notNull: false;
163
+ hasDefault: false;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: undefined;
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}, {}>;
172
+ target: import("drizzle-orm/sqlite-core").SQLiteColumn<{
173
+ name: "target";
174
+ tableName: "promotions";
175
+ dataType: "string";
176
+ columnType: "SQLiteText";
177
+ data: string;
178
+ driverParam: string;
179
+ notNull: true;
180
+ hasDefault: true;
181
+ isPrimaryKey: false;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: false;
184
+ enumValues: [string, ...string[]];
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}, {
189
+ length: number | undefined;
190
+ }>;
191
+ conditionsJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
192
+ name: "conditions_json";
193
+ tableName: "promotions";
194
+ dataType: "string";
195
+ columnType: "SQLiteText";
196
+ data: string;
197
+ driverParam: string;
198
+ notNull: false;
199
+ hasDefault: false;
200
+ isPrimaryKey: false;
201
+ isAutoincrement: false;
202
+ hasRuntimeDefault: false;
203
+ enumValues: [string, ...string[]];
204
+ baseColumn: never;
205
+ identity: undefined;
206
+ generated: undefined;
207
+ }, {}, {
208
+ length: number | undefined;
209
+ }>;
210
+ startsAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
211
+ name: "starts_at";
212
+ tableName: "promotions";
213
+ dataType: "string";
214
+ columnType: "SQLiteText";
215
+ data: string;
216
+ driverParam: string;
217
+ notNull: true;
218
+ hasDefault: false;
219
+ isPrimaryKey: false;
220
+ isAutoincrement: false;
221
+ hasRuntimeDefault: false;
222
+ enumValues: [string, ...string[]];
223
+ baseColumn: never;
224
+ identity: undefined;
225
+ generated: undefined;
226
+ }, {}, {
227
+ length: number | undefined;
228
+ }>;
229
+ endsAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
230
+ name: "ends_at";
231
+ tableName: "promotions";
232
+ dataType: "string";
233
+ columnType: "SQLiteText";
234
+ data: string;
235
+ driverParam: string;
236
+ notNull: false;
237
+ hasDefault: false;
238
+ isPrimaryKey: false;
239
+ isAutoincrement: false;
240
+ hasRuntimeDefault: false;
241
+ enumValues: [string, ...string[]];
242
+ baseColumn: never;
243
+ identity: undefined;
244
+ generated: undefined;
245
+ }, {}, {
246
+ length: number | undefined;
247
+ }>;
248
+ isActive: import("drizzle-orm/sqlite-core").SQLiteColumn<{
249
+ name: "is_active";
250
+ tableName: "promotions";
251
+ dataType: "boolean";
252
+ columnType: "SQLiteBoolean";
253
+ data: boolean;
254
+ driverParam: number;
255
+ notNull: true;
256
+ hasDefault: true;
257
+ isPrimaryKey: false;
258
+ isAutoincrement: false;
259
+ hasRuntimeDefault: false;
260
+ enumValues: undefined;
261
+ baseColumn: never;
262
+ identity: undefined;
263
+ generated: undefined;
264
+ }, {}, {}>;
265
+ requiresCoupon: import("drizzle-orm/sqlite-core").SQLiteColumn<{
266
+ name: "requires_coupon";
267
+ tableName: "promotions";
268
+ dataType: "boolean";
269
+ columnType: "SQLiteBoolean";
270
+ data: boolean;
271
+ driverParam: number;
272
+ notNull: true;
273
+ hasDefault: true;
274
+ isPrimaryKey: false;
275
+ isAutoincrement: false;
276
+ hasRuntimeDefault: false;
277
+ enumValues: undefined;
278
+ baseColumn: never;
279
+ identity: undefined;
280
+ generated: undefined;
281
+ }, {}, {}>;
282
+ usageLimitPerCustomer: import("drizzle-orm/sqlite-core").SQLiteColumn<{
283
+ name: "usage_limit_per_customer";
284
+ tableName: "promotions";
285
+ dataType: "number";
286
+ columnType: "SQLiteInteger";
287
+ data: number;
288
+ driverParam: number;
289
+ notNull: false;
290
+ hasDefault: false;
291
+ isPrimaryKey: false;
292
+ isAutoincrement: false;
293
+ hasRuntimeDefault: false;
294
+ enumValues: undefined;
295
+ baseColumn: never;
296
+ identity: undefined;
297
+ generated: undefined;
298
+ }, {}, {}>;
299
+ usageLimitTotal: import("drizzle-orm/sqlite-core").SQLiteColumn<{
300
+ name: "usage_limit_total";
301
+ tableName: "promotions";
302
+ dataType: "number";
303
+ columnType: "SQLiteInteger";
304
+ data: number;
305
+ driverParam: number;
306
+ notNull: false;
307
+ hasDefault: false;
308
+ isPrimaryKey: false;
309
+ isAutoincrement: false;
310
+ hasRuntimeDefault: false;
311
+ enumValues: undefined;
312
+ baseColumn: never;
313
+ identity: undefined;
314
+ generated: undefined;
315
+ }, {}, {}>;
316
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
317
+ name: "created_at";
318
+ tableName: "promotions";
319
+ dataType: "string";
320
+ columnType: "SQLiteText";
321
+ data: string;
322
+ driverParam: string;
323
+ notNull: true;
324
+ hasDefault: true;
325
+ isPrimaryKey: false;
326
+ isAutoincrement: false;
327
+ hasRuntimeDefault: true;
328
+ enumValues: [string, ...string[]];
329
+ baseColumn: never;
330
+ identity: undefined;
331
+ generated: undefined;
332
+ }, {}, {
333
+ length: number | undefined;
334
+ }>;
335
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
336
+ name: "updated_at";
337
+ tableName: "promotions";
338
+ dataType: "string";
339
+ columnType: "SQLiteText";
340
+ data: string;
341
+ driverParam: string;
342
+ notNull: true;
343
+ hasDefault: true;
344
+ isPrimaryKey: false;
345
+ isAutoincrement: false;
346
+ hasRuntimeDefault: true;
347
+ enumValues: [string, ...string[]];
348
+ baseColumn: never;
349
+ identity: undefined;
350
+ generated: undefined;
351
+ }, {}, {
352
+ length: number | undefined;
353
+ }>;
354
+ };
355
+ dialect: "sqlite";
356
+ }>;
357
+ export declare const coupons: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
358
+ name: "coupons";
359
+ schema: undefined;
360
+ columns: {
361
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
362
+ name: "id";
363
+ tableName: "coupons";
364
+ dataType: "string";
365
+ columnType: "SQLiteText";
366
+ data: string;
367
+ driverParam: string;
368
+ notNull: true;
369
+ hasDefault: true;
370
+ isPrimaryKey: true;
371
+ isAutoincrement: false;
372
+ hasRuntimeDefault: true;
373
+ enumValues: [string, ...string[]];
374
+ baseColumn: never;
375
+ identity: undefined;
376
+ generated: undefined;
377
+ }, {}, {
378
+ length: number | undefined;
379
+ }>;
380
+ code: import("drizzle-orm/sqlite-core").SQLiteColumn<{
381
+ name: "code";
382
+ tableName: "coupons";
383
+ dataType: "string";
384
+ columnType: "SQLiteText";
385
+ data: string;
386
+ driverParam: string;
387
+ notNull: true;
388
+ hasDefault: false;
389
+ isPrimaryKey: false;
390
+ isAutoincrement: false;
391
+ hasRuntimeDefault: false;
392
+ enumValues: [string, ...string[]];
393
+ baseColumn: never;
394
+ identity: undefined;
395
+ generated: undefined;
396
+ }, {}, {
397
+ length: number | undefined;
398
+ }>;
399
+ promotionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
400
+ name: "promotion_id";
401
+ tableName: "coupons";
402
+ dataType: "string";
403
+ columnType: "SQLiteText";
404
+ data: string;
405
+ driverParam: string;
406
+ notNull: true;
407
+ hasDefault: false;
408
+ isPrimaryKey: false;
409
+ isAutoincrement: false;
410
+ hasRuntimeDefault: false;
411
+ enumValues: [string, ...string[]];
412
+ baseColumn: never;
413
+ identity: undefined;
414
+ generated: undefined;
415
+ }, {}, {
416
+ length: number | undefined;
417
+ }>;
418
+ isValid: import("drizzle-orm/sqlite-core").SQLiteColumn<{
419
+ name: "is_valid";
420
+ tableName: "coupons";
421
+ dataType: "boolean";
422
+ columnType: "SQLiteBoolean";
423
+ data: boolean;
424
+ driverParam: number;
425
+ notNull: true;
426
+ hasDefault: true;
427
+ isPrimaryKey: false;
428
+ isAutoincrement: false;
429
+ hasRuntimeDefault: false;
430
+ enumValues: undefined;
431
+ baseColumn: never;
432
+ identity: undefined;
433
+ generated: undefined;
434
+ }, {}, {}>;
435
+ invalidReason: import("drizzle-orm/sqlite-core").SQLiteColumn<{
436
+ name: "invalid_reason";
437
+ tableName: "coupons";
438
+ dataType: "string";
439
+ columnType: "SQLiteText";
440
+ data: string;
441
+ driverParam: string;
442
+ notNull: false;
443
+ hasDefault: false;
444
+ isPrimaryKey: false;
445
+ isAutoincrement: false;
446
+ hasRuntimeDefault: false;
447
+ enumValues: [string, ...string[]];
448
+ baseColumn: never;
449
+ identity: undefined;
450
+ generated: undefined;
451
+ }, {}, {
452
+ length: number | undefined;
453
+ }>;
454
+ timesUsed: import("drizzle-orm/sqlite-core").SQLiteColumn<{
455
+ name: "times_used";
456
+ tableName: "coupons";
457
+ dataType: "number";
458
+ columnType: "SQLiteInteger";
459
+ data: number;
460
+ driverParam: number;
461
+ notNull: true;
462
+ hasDefault: true;
463
+ isPrimaryKey: false;
464
+ isAutoincrement: false;
465
+ hasRuntimeDefault: false;
466
+ enumValues: undefined;
467
+ baseColumn: never;
468
+ identity: undefined;
469
+ generated: undefined;
470
+ }, {}, {}>;
471
+ };
472
+ dialect: "sqlite";
473
+ }>;
474
+ //# sourceMappingURL=promotions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotions.d.ts","sourceRoot":"","sources":["../../../../src/database/drizzle/schema/promotions.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBrB,CAAA;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOlB,CAAA"}
@@ -0,0 +1,34 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Promotions schema
3
+ // ---------------------------------------------------------------------------
4
+ import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';
5
+ export const promotions = sqliteTable('promotions', {
6
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
7
+ name: text('name').notNull(),
8
+ nameAr: text('name_ar'),
9
+ description: text('description'),
10
+ descriptionAr: text('description_ar'),
11
+ discountType: text('discount_type').notNull().default('percentage'),
12
+ discountValue: real('discount_value').notNull().default(0),
13
+ currency: text('currency'),
14
+ maxDiscount: real('max_discount'),
15
+ target: text('target').notNull().default('order'),
16
+ conditionsJson: text('conditions_json'), // JSON blob for PromotionCondition
17
+ startsAt: text('starts_at').notNull(),
18
+ endsAt: text('ends_at'),
19
+ isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),
20
+ requiresCoupon: integer('requires_coupon', { mode: 'boolean' }).notNull().default(false),
21
+ usageLimitPerCustomer: integer('usage_limit_per_customer'),
22
+ usageLimitTotal: integer('usage_limit_total'),
23
+ createdAt: text('created_at').notNull().$defaultFn(() => new Date().toISOString()),
24
+ updatedAt: text('updated_at').notNull().$defaultFn(() => new Date().toISOString()),
25
+ });
26
+ export const coupons = sqliteTable('coupons', {
27
+ id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
28
+ code: text('code').notNull().unique(),
29
+ promotionId: text('promotion_id').notNull().references(() => promotions.id, { onDelete: 'cascade' }),
30
+ isValid: integer('is_valid', { mode: 'boolean' }).notNull().default(true),
31
+ invalidReason: text('invalid_reason'),
32
+ timesUsed: integer('times_used').notNull().default(0),
33
+ });
34
+ //# sourceMappingURL=promotions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotions.js","sourceRoot":"","sources":["../../../../src/database/drizzle/schema/promotions.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE;IAClD,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAChC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACrC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IACnE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACjD,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,mCAAmC;IAC5E,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3E,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxF,qBAAqB,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAC1D,eAAe,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAC7C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClF,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE;IAC5C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IACrC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACpG,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACtD,CAAC,CAAA"}