@stacksjs/commerce 0.70.55 → 0.70.57

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 (297) hide show
  1. package/package.json +10 -7
  2. package/src/carts/destroy.ts +0 -54
  3. package/src/carts/fetch.ts +0 -20
  4. package/src/carts/index.ts +0 -13
  5. package/src/carts/store.ts +0 -75
  6. package/src/carts/update.ts +0 -78
  7. package/src/coupons/destroy.ts +0 -49
  8. package/src/coupons/fetch.ts +0 -510
  9. package/src/coupons/index.ts +0 -30
  10. package/src/coupons/store.ts +0 -46
  11. package/src/coupons/update.ts +0 -147
  12. package/src/customers/destroy.ts +0 -62
  13. package/src/customers/fetch.ts +0 -20
  14. package/src/customers/index.ts +0 -17
  15. package/src/customers/store.ts +0 -45
  16. package/src/customers/update.ts +0 -44
  17. package/src/devices/destroy.ts +0 -54
  18. package/src/devices/export.ts +0 -98
  19. package/src/devices/fetch.ts +0 -125
  20. package/src/devices/index.ts +0 -31
  21. package/src/devices/store.ts +0 -82
  22. package/src/devices/update.ts +0 -125
  23. package/src/errors/destroy.ts +0 -54
  24. package/src/errors/fetch.ts +0 -197
  25. package/src/errors/index.ts +0 -28
  26. package/src/errors/update.ts +0 -116
  27. package/src/gift-cards/destroy.ts +0 -87
  28. package/src/gift-cards/fetch.ts +0 -431
  29. package/src/gift-cards/index.ts +0 -26
  30. package/src/gift-cards/store.ts +0 -56
  31. package/src/gift-cards/update.ts +0 -102
  32. package/src/index.ts +0 -78
  33. package/src/orders/destroy.ts +0 -111
  34. package/src/orders/events.ts +0 -121
  35. package/src/orders/export.ts +0 -158
  36. package/src/orders/fetch.ts +0 -379
  37. package/src/orders/guards.ts +0 -261
  38. package/src/orders/index.ts +0 -91
  39. package/src/orders/place-order.ts +0 -274
  40. package/src/orders/store.ts +0 -51
  41. package/src/orders/totals.ts +0 -190
  42. package/src/orders/update.ts +0 -164
  43. package/src/orders/webhook.ts +0 -312
  44. package/src/payments/destroy.ts +0 -56
  45. package/src/payments/fetch.ts +0 -288
  46. package/src/payments/index.ts +0 -16
  47. package/src/payments/store.ts +0 -63
  48. package/src/payments/update.ts +0 -52
  49. package/src/product.ts +0 -0
  50. package/src/products/categories/destroy.ts +0 -103
  51. package/src/products/categories/fetch.ts +0 -285
  52. package/src/products/categories/index.ts +0 -36
  53. package/src/products/categories/store.ts +0 -87
  54. package/src/products/categories/update.ts +0 -251
  55. package/src/products/index.ts +0 -35
  56. package/src/products/items/destroy.ts +0 -54
  57. package/src/products/items/fetch.ts +0 -282
  58. package/src/products/items/index.ts +0 -26
  59. package/src/products/items/store.ts +0 -84
  60. package/src/products/items/update.ts +0 -324
  61. package/src/products/manufacturers/destroy.ts +0 -56
  62. package/src/products/manufacturers/fetch.ts +0 -117
  63. package/src/products/manufacturers/index.ts +0 -24
  64. package/src/products/manufacturers/store.ts +0 -82
  65. package/src/products/manufacturers/update.ts +0 -113
  66. package/src/products/reviews/destroy.ts +0 -56
  67. package/src/products/reviews/fetch.ts +0 -63
  68. package/src/products/reviews/index.ts +0 -25
  69. package/src/products/reviews/store.ts +0 -46
  70. package/src/products/reviews/update.ts +0 -82
  71. package/src/products/units/destroy.ts +0 -56
  72. package/src/products/units/fetch.ts +0 -20
  73. package/src/products/units/index.ts +0 -13
  74. package/src/products/units/store.ts +0 -162
  75. package/src/products/units/update.ts +0 -159
  76. package/src/products/variants/destroy.ts +0 -56
  77. package/src/products/variants/fetch.ts +0 -20
  78. package/src/products/variants/index.ts +0 -21
  79. package/src/products/variants/store.ts +0 -136
  80. package/src/products/variants/update.ts +0 -104
  81. package/src/receipts/destroy.ts +0 -54
  82. package/src/receipts/export.ts +0 -0
  83. package/src/receipts/fetch.ts +0 -222
  84. package/src/receipts/index.ts +0 -24
  85. package/src/receipts/printer.ts +0 -69
  86. package/src/receipts/store.ts +0 -69
  87. package/src/receipts/update.ts +0 -124
  88. package/src/shippings/delivery-routes/destroy.ts +0 -54
  89. package/src/shippings/delivery-routes/fetch.ts +0 -42
  90. package/src/shippings/delivery-routes/index.ts +0 -26
  91. package/src/shippings/delivery-routes/store.ts +0 -69
  92. package/src/shippings/delivery-routes/update.ts +0 -120
  93. package/src/shippings/digital-deliveries/destroy.ts +0 -111
  94. package/src/shippings/digital-deliveries/fetch.ts +0 -20
  95. package/src/shippings/digital-deliveries/index.ts +0 -26
  96. package/src/shippings/digital-deliveries/store.ts +0 -76
  97. package/src/shippings/digital-deliveries/update.ts +0 -129
  98. package/src/shippings/drivers/destroy.ts +0 -78
  99. package/src/shippings/drivers/fetch.ts +0 -20
  100. package/src/shippings/drivers/index.ts +0 -24
  101. package/src/shippings/drivers/store.ts +0 -69
  102. package/src/shippings/drivers/update.ts +0 -117
  103. package/src/shippings/index.ts +0 -39
  104. package/src/shippings/license-keys/destroy.ts +0 -111
  105. package/src/shippings/license-keys/fetch.ts +0 -20
  106. package/src/shippings/license-keys/index.ts +0 -26
  107. package/src/shippings/license-keys/store.ts +0 -77
  108. package/src/shippings/license-keys/update.ts +0 -117
  109. package/src/shippings/shipping-methods/destroy.ts +0 -111
  110. package/src/shippings/shipping-methods/fetch.ts +0 -62
  111. package/src/shippings/shipping-methods/index.ts +0 -28
  112. package/src/shippings/shipping-methods/store.ts +0 -123
  113. package/src/shippings/shipping-methods/update.ts +0 -120
  114. package/src/shippings/shipping-rates/destroy.ts +0 -102
  115. package/src/shippings/shipping-rates/fetch.ts +0 -320
  116. package/src/shippings/shipping-rates/index.ts +0 -36
  117. package/src/shippings/shipping-rates/store.ts +0 -102
  118. package/src/shippings/shipping-rates/update.ts +0 -139
  119. package/src/shippings/shipping-zones/destroy.ts +0 -111
  120. package/src/shippings/shipping-zones/fetch.ts +0 -96
  121. package/src/shippings/shipping-zones/index.ts +0 -26
  122. package/src/shippings/shipping-zones/store.ts +0 -74
  123. package/src/shippings/shipping-zones/update.ts +0 -156
  124. package/src/tax/destroy.ts +0 -54
  125. package/src/tax/fetch.ts +0 -20
  126. package/src/tax/index.ts +0 -24
  127. package/src/tax/store.ts +0 -69
  128. package/src/tax/update.ts +0 -119
  129. package/src/tests/coupons.test.ts +0 -90
  130. package/src/tests/customers.test.ts +0 -39
  131. package/src/tests/device.test.ts +0 -111
  132. package/src/tests/digitals.test.ts +0 -31
  133. package/src/tests/drivers.test.ts +0 -25
  134. package/src/tests/gift-cards.test.ts +0 -36
  135. package/src/tests/license.test.ts +0 -31
  136. package/src/tests/manufacturers.test.ts +0 -80
  137. package/src/tests/orders.test.ts +0 -25
  138. package/src/tests/payments.test.ts +0 -75
  139. package/src/tests/rates.test.ts +0 -367
  140. package/src/tests/receipts.test.ts +0 -287
  141. package/src/tests/restaurant.test.ts +0 -522
  142. package/src/tests/reviews.test.ts +0 -165
  143. package/src/tests/routes.test.ts +0 -51
  144. package/src/tests/setup.ts +0 -149
  145. package/src/tests/shipping.test.ts +0 -88
  146. package/src/tests/tax.test.ts +0 -25
  147. package/src/tests/units.test.ts +0 -110
  148. package/src/tests/variants.test.ts +0 -133
  149. package/src/tests/waitlist.test.ts +0 -303
  150. package/src/tests/zones.test.ts +0 -86
  151. package/src/types.ts +0 -312
  152. package/src/utils/typed-stats.ts +0 -67
  153. package/src/waitlists/index.ts +0 -19
  154. package/src/waitlists/products/destroy.ts +0 -65
  155. package/src/waitlists/products/export.ts +0 -113
  156. package/src/waitlists/products/fetch.ts +0 -362
  157. package/src/waitlists/products/index.ts +0 -33
  158. package/src/waitlists/products/store.ts +0 -112
  159. package/src/waitlists/products/update.ts +0 -125
  160. package/src/waitlists/restaurant/destroy.ts +0 -65
  161. package/src/waitlists/restaurant/export.ts +0 -107
  162. package/src/waitlists/restaurant/fetch.ts +0 -538
  163. package/src/waitlists/restaurant/index.ts +0 -43
  164. package/src/waitlists/restaurant/store.ts +0 -109
  165. package/src/waitlists/restaurant/update.ts +0 -198
  166. /package/dist/{src/coupons → coupons}/destroy.d.ts +0 -0
  167. /package/dist/{src/coupons → coupons}/fetch.d.ts +0 -0
  168. /package/dist/{src/coupons → coupons}/index.d.ts +0 -0
  169. /package/dist/{src/coupons → coupons}/store.d.ts +0 -0
  170. /package/dist/{src/coupons → coupons}/update.d.ts +0 -0
  171. /package/dist/{src/customers → customers}/destroy.d.ts +0 -0
  172. /package/dist/{src/customers → customers}/fetch.d.ts +0 -0
  173. /package/dist/{src/customers → customers}/index.d.ts +0 -0
  174. /package/dist/{src/customers → customers}/store.d.ts +0 -0
  175. /package/dist/{src/customers → customers}/update.d.ts +0 -0
  176. /package/dist/{src/devices → devices}/destroy.d.ts +0 -0
  177. /package/dist/{src/devices → devices}/export.d.ts +0 -0
  178. /package/dist/{src/devices → devices}/fetch.d.ts +0 -0
  179. /package/dist/{src/devices → devices}/index.d.ts +0 -0
  180. /package/dist/{src/devices → devices}/store.d.ts +0 -0
  181. /package/dist/{src/devices → devices}/update.d.ts +0 -0
  182. /package/dist/{src/errors → errors}/destroy.d.ts +0 -0
  183. /package/dist/{src/errors → errors}/fetch.d.ts +0 -0
  184. /package/dist/{src/errors → errors}/index.d.ts +0 -0
  185. /package/dist/{src/errors → errors}/update.d.ts +0 -0
  186. /package/dist/{src/gift-cards → gift-cards}/destroy.d.ts +0 -0
  187. /package/dist/{src/gift-cards → gift-cards}/fetch.d.ts +0 -0
  188. /package/dist/{src/gift-cards → gift-cards}/index.d.ts +0 -0
  189. /package/dist/{src/gift-cards → gift-cards}/store.d.ts +0 -0
  190. /package/dist/{src/gift-cards → gift-cards}/update.d.ts +0 -0
  191. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  192. /package/dist/{src/orders → orders}/destroy.d.ts +0 -0
  193. /package/dist/{src/orders → orders}/events.d.ts +0 -0
  194. /package/dist/{src/orders → orders}/export.d.ts +0 -0
  195. /package/dist/{src/orders → orders}/fetch.d.ts +0 -0
  196. /package/dist/{src/orders → orders}/guards.d.ts +0 -0
  197. /package/dist/{src/orders → orders}/index.d.ts +0 -0
  198. /package/dist/{src/orders → orders}/place-order.d.ts +0 -0
  199. /package/dist/{src/orders → orders}/store.d.ts +0 -0
  200. /package/dist/{src/orders → orders}/totals.d.ts +0 -0
  201. /package/dist/{src/orders → orders}/update.d.ts +0 -0
  202. /package/dist/{src/orders → orders}/webhook.d.ts +0 -0
  203. /package/dist/{src/payments → payments}/destroy.d.ts +0 -0
  204. /package/dist/{src/payments → payments}/fetch.d.ts +0 -0
  205. /package/dist/{src/payments → payments}/index.d.ts +0 -0
  206. /package/dist/{src/payments → payments}/store.d.ts +0 -0
  207. /package/dist/{src/payments → payments}/update.d.ts +0 -0
  208. /package/dist/{src/products → products}/categories/destroy.d.ts +0 -0
  209. /package/dist/{src/products → products}/categories/fetch.d.ts +0 -0
  210. /package/dist/{src/products → products}/categories/index.d.ts +0 -0
  211. /package/dist/{src/products → products}/categories/store.d.ts +0 -0
  212. /package/dist/{src/products → products}/categories/update.d.ts +0 -0
  213. /package/dist/{src/products → products}/index.d.ts +0 -0
  214. /package/dist/{src/products → products}/items/destroy.d.ts +0 -0
  215. /package/dist/{src/products → products}/items/fetch.d.ts +0 -0
  216. /package/dist/{src/products → products}/items/index.d.ts +0 -0
  217. /package/dist/{src/products → products}/items/store.d.ts +0 -0
  218. /package/dist/{src/products → products}/items/update.d.ts +0 -0
  219. /package/dist/{src/products → products}/manufacturers/destroy.d.ts +0 -0
  220. /package/dist/{src/products → products}/manufacturers/fetch.d.ts +0 -0
  221. /package/dist/{src/products → products}/manufacturers/index.d.ts +0 -0
  222. /package/dist/{src/products → products}/manufacturers/store.d.ts +0 -0
  223. /package/dist/{src/products → products}/manufacturers/update.d.ts +0 -0
  224. /package/dist/{src/products → products}/reviews/destroy.d.ts +0 -0
  225. /package/dist/{src/products → products}/reviews/fetch.d.ts +0 -0
  226. /package/dist/{src/products → products}/reviews/index.d.ts +0 -0
  227. /package/dist/{src/products → products}/reviews/store.d.ts +0 -0
  228. /package/dist/{src/products → products}/reviews/update.d.ts +0 -0
  229. /package/dist/{src/products → products}/units/destroy.d.ts +0 -0
  230. /package/dist/{src/products → products}/units/fetch.d.ts +0 -0
  231. /package/dist/{src/products → products}/units/index.d.ts +0 -0
  232. /package/dist/{src/products → products}/units/store.d.ts +0 -0
  233. /package/dist/{src/products → products}/units/update.d.ts +0 -0
  234. /package/dist/{src/products → products}/variants/destroy.d.ts +0 -0
  235. /package/dist/{src/products → products}/variants/fetch.d.ts +0 -0
  236. /package/dist/{src/products → products}/variants/index.d.ts +0 -0
  237. /package/dist/{src/products → products}/variants/store.d.ts +0 -0
  238. /package/dist/{src/products → products}/variants/update.d.ts +0 -0
  239. /package/dist/{src/receipts → receipts}/destroy.d.ts +0 -0
  240. /package/dist/{src/receipts → receipts}/fetch.d.ts +0 -0
  241. /package/dist/{src/receipts → receipts}/index.d.ts +0 -0
  242. /package/dist/{src/receipts → receipts}/store.d.ts +0 -0
  243. /package/dist/{src/receipts → receipts}/update.d.ts +0 -0
  244. /package/dist/{src/shippings → shippings}/delivery-routes/destroy.d.ts +0 -0
  245. /package/dist/{src/shippings → shippings}/delivery-routes/fetch.d.ts +0 -0
  246. /package/dist/{src/shippings → shippings}/delivery-routes/index.d.ts +0 -0
  247. /package/dist/{src/shippings → shippings}/delivery-routes/store.d.ts +0 -0
  248. /package/dist/{src/shippings → shippings}/delivery-routes/update.d.ts +0 -0
  249. /package/dist/{src/shippings → shippings}/digital-deliveries/destroy.d.ts +0 -0
  250. /package/dist/{src/shippings → shippings}/digital-deliveries/fetch.d.ts +0 -0
  251. /package/dist/{src/shippings → shippings}/digital-deliveries/index.d.ts +0 -0
  252. /package/dist/{src/shippings → shippings}/digital-deliveries/store.d.ts +0 -0
  253. /package/dist/{src/shippings → shippings}/digital-deliveries/update.d.ts +0 -0
  254. /package/dist/{src/shippings → shippings}/drivers/destroy.d.ts +0 -0
  255. /package/dist/{src/shippings → shippings}/drivers/fetch.d.ts +0 -0
  256. /package/dist/{src/shippings → shippings}/drivers/index.d.ts +0 -0
  257. /package/dist/{src/shippings → shippings}/drivers/store.d.ts +0 -0
  258. /package/dist/{src/shippings → shippings}/drivers/update.d.ts +0 -0
  259. /package/dist/{src/shippings → shippings}/index.d.ts +0 -0
  260. /package/dist/{src/shippings → shippings}/license-keys/destroy.d.ts +0 -0
  261. /package/dist/{src/shippings → shippings}/license-keys/fetch.d.ts +0 -0
  262. /package/dist/{src/shippings → shippings}/license-keys/index.d.ts +0 -0
  263. /package/dist/{src/shippings → shippings}/license-keys/store.d.ts +0 -0
  264. /package/dist/{src/shippings → shippings}/license-keys/update.d.ts +0 -0
  265. /package/dist/{src/shippings → shippings}/shipping-methods/destroy.d.ts +0 -0
  266. /package/dist/{src/shippings → shippings}/shipping-methods/fetch.d.ts +0 -0
  267. /package/dist/{src/shippings → shippings}/shipping-methods/index.d.ts +0 -0
  268. /package/dist/{src/shippings → shippings}/shipping-methods/store.d.ts +0 -0
  269. /package/dist/{src/shippings → shippings}/shipping-methods/update.d.ts +0 -0
  270. /package/dist/{src/shippings → shippings}/shipping-rates/destroy.d.ts +0 -0
  271. /package/dist/{src/shippings → shippings}/shipping-rates/fetch.d.ts +0 -0
  272. /package/dist/{src/shippings → shippings}/shipping-rates/index.d.ts +0 -0
  273. /package/dist/{src/shippings → shippings}/shipping-rates/store.d.ts +0 -0
  274. /package/dist/{src/shippings → shippings}/shipping-rates/update.d.ts +0 -0
  275. /package/dist/{src/shippings → shippings}/shipping-zones/destroy.d.ts +0 -0
  276. /package/dist/{src/shippings → shippings}/shipping-zones/fetch.d.ts +0 -0
  277. /package/dist/{src/shippings → shippings}/shipping-zones/index.d.ts +0 -0
  278. /package/dist/{src/shippings → shippings}/shipping-zones/store.d.ts +0 -0
  279. /package/dist/{src/shippings → shippings}/shipping-zones/update.d.ts +0 -0
  280. /package/dist/{src/tax → tax}/destroy.d.ts +0 -0
  281. /package/dist/{src/tax → tax}/fetch.d.ts +0 -0
  282. /package/dist/{src/tax → tax}/index.d.ts +0 -0
  283. /package/dist/{src/tax → tax}/store.d.ts +0 -0
  284. /package/dist/{src/tax → tax}/update.d.ts +0 -0
  285. /package/dist/{src/types.d.ts → types.d.ts} +0 -0
  286. /package/dist/{src/utils → utils}/typed-stats.d.ts +0 -0
  287. /package/dist/{src/waitlists → waitlists}/index.d.ts +0 -0
  288. /package/dist/{src/waitlists → waitlists}/products/destroy.d.ts +0 -0
  289. /package/dist/{src/waitlists → waitlists}/products/fetch.d.ts +0 -0
  290. /package/dist/{src/waitlists → waitlists}/products/index.d.ts +0 -0
  291. /package/dist/{src/waitlists → waitlists}/products/store.d.ts +0 -0
  292. /package/dist/{src/waitlists → waitlists}/products/update.d.ts +0 -0
  293. /package/dist/{src/waitlists → waitlists}/restaurant/destroy.d.ts +0 -0
  294. /package/dist/{src/waitlists → waitlists}/restaurant/fetch.d.ts +0 -0
  295. /package/dist/{src/waitlists → waitlists}/restaurant/index.d.ts +0 -0
  296. /package/dist/{src/waitlists → waitlists}/restaurant/store.d.ts +0 -0
  297. /package/dist/{src/waitlists → waitlists}/restaurant/update.d.ts +0 -0
@@ -1,120 +0,0 @@
1
- import { db } from '@stacksjs/database'
2
- import { formatDate } from '@stacksjs/orm'
3
- type DeliveryRouteJsonResponse = ModelRow<typeof DeliveryRoute>
4
- type DeliveryRouteUpdate = UpdateModelData<typeof DeliveryRoute>
5
-
6
- /**
7
- * Update a delivery route
8
- *
9
- * @param id The ID of the delivery route
10
- * @param data The delivery route data to update
11
- * @returns The updated delivery route record
12
- */
13
- export async function update(id: number, data: DeliveryRouteUpdate): Promise<DeliveryRouteJsonResponse> {
14
- try {
15
- if (!id)
16
- throw new Error('Delivery route ID is required for update')
17
-
18
- const result = await db
19
- .updateTable('delivery_routes')
20
- .set({
21
- ...data,
22
- updated_at: formatDate(new Date()),
23
- })
24
- .where('id', '=', id)
25
- .returningAll()
26
- .executeTakeFirst()
27
-
28
- if (!result)
29
- throw new Error('Failed to update delivery route')
30
-
31
- return result as DeliveryRouteJsonResponse
32
- }
33
- catch (error) {
34
- if (error instanceof Error) {
35
- throw new TypeError(`Failed to update delivery route: ${error.message}`)
36
- }
37
-
38
- throw error
39
- }
40
- }
41
-
42
- /**
43
- * Update a delivery route's stops count
44
- *
45
- * @param id The ID of the delivery route
46
- * @param stops The new number of stops
47
- * @returns The updated delivery route with the new stops count
48
- */
49
- export async function updateStops(
50
- id: number,
51
- stops: number,
52
- ): Promise<DeliveryRouteJsonResponse> {
53
- try {
54
- const result = await db
55
- .updateTable('delivery_routes')
56
- .set({
57
- stops,
58
- updated_at: formatDate(new Date()),
59
- })
60
- .where('id', '=', id)
61
- .returningAll()
62
- .executeTakeFirst()
63
-
64
- if (!result)
65
- throw new Error('Failed to update delivery route stops')
66
-
67
- return result as DeliveryRouteJsonResponse
68
- }
69
- catch (error) {
70
- if (error instanceof Error) {
71
- throw new TypeError(`Failed to update delivery route stops: ${error.message}`)
72
- }
73
-
74
- throw error
75
- }
76
- }
77
-
78
- /**
79
- * Update delivery metrics for a route
80
- *
81
- * @param id The ID of the delivery route
82
- * @param delivery_time The updated delivery time
83
- * @param total_distance The updated total distance
84
- * @returns The updated delivery route
85
- */
86
- export async function updateMetrics(
87
- id: number,
88
- delivery_time?: number,
89
- total_distance?: number,
90
- ): Promise<DeliveryRouteJsonResponse> {
91
- try {
92
- const updateData: Record<string, any> = {
93
- updated_at: formatDate(new Date()),
94
- }
95
-
96
- if (delivery_time !== undefined)
97
- updateData.delivery_time = delivery_time
98
- if (total_distance !== undefined)
99
- updateData.total_distance = total_distance
100
-
101
- const result = await db
102
- .updateTable('delivery_routes')
103
- .set(updateData)
104
- .where('id', '=', id)
105
- .returningAll()
106
- .executeTakeFirst()
107
-
108
- if (!result)
109
- throw new Error('Failed to update delivery metrics')
110
-
111
- return result as DeliveryRouteJsonResponse
112
- }
113
- catch (error) {
114
- if (error instanceof Error) {
115
- throw new TypeError(`Failed to update delivery metrics: ${error.message}`)
116
- }
117
-
118
- throw error
119
- }
120
- }
@@ -1,111 +0,0 @@
1
- import { db } from '@stacksjs/database'
2
-
3
- /**
4
- * Delete a digital delivery by ID
5
- *
6
- * @param id The ID of the digital delivery to delete
7
- * @returns True if the digital delivery was deleted, false otherwise
8
- */
9
- export async function destroy(id: number): Promise<boolean> {
10
- try {
11
- const result = await db
12
- .deleteFrom('digital_deliveries')
13
- .where('id', '=', id)
14
- .executeTakeFirst()
15
-
16
- return Number(result.numDeletedRows) > 0
17
- }
18
- catch (error) {
19
- if (error instanceof Error) {
20
- throw new TypeError(`Failed to delete digital delivery: ${error.message}`)
21
- }
22
-
23
- throw error
24
- }
25
- }
26
-
27
- /**
28
- * Soft delete a digital delivery by ID (updates status to 'inactive')
29
- *
30
- * @param id The ID of the digital delivery to soft delete
31
- * @returns True if the digital delivery was soft deleted, false otherwise
32
- */
33
- export async function softDelete(id: number): Promise<boolean> {
34
- try {
35
- // Update the status to 'inactive' instead of deleting
36
- const result = await db
37
- .updateTable('digital_deliveries')
38
- .set({ status: 'inactive' })
39
- .where('id', '=', id)
40
- .executeTakeFirst()
41
-
42
- // Return true if any row was affected (updated)
43
- return Number(result.numUpdatedRows) > 0
44
- }
45
- catch (error) {
46
- if (error instanceof Error) {
47
- throw new TypeError(`Failed to soft delete digital delivery: ${error.message}`)
48
- }
49
-
50
- throw error
51
- }
52
- }
53
-
54
- /**
55
- * Delete multiple digital deliveries by ID
56
- *
57
- * @param ids Array of digital delivery IDs to delete
58
- * @returns Number of digital deliveries deleted
59
- */
60
- export async function bulkDestroy(ids: number[]): Promise<number> {
61
- if (!ids.length)
62
- return 0
63
-
64
- try {
65
- // Perform the delete operation
66
- const result = await db
67
- .deleteFrom('digital_deliveries')
68
- .where('id', 'in', ids)
69
- .executeTakeFirst()
70
-
71
- // Return the number of deleted rows
72
- return Number(result.numDeletedRows)
73
- }
74
- catch (error) {
75
- if (error instanceof Error) {
76
- throw new TypeError(`Failed to delete digital deliveries: ${error.message}`)
77
- }
78
-
79
- throw error
80
- }
81
- }
82
-
83
- /**
84
- * Soft delete multiple digital deliveries by ID (updates status to 'inactive')
85
- *
86
- * @param ids Array of digital delivery IDs to soft delete
87
- * @returns Number of digital deliveries soft deleted
88
- */
89
- export async function bulkSoftDelete(ids: number[]): Promise<number> {
90
- if (!ids.length)
91
- return 0
92
-
93
- try {
94
- // Update the status to 'inactive' instead of deleting
95
- const result = await db
96
- .updateTable('digital_deliveries')
97
- .set({ status: 'inactive' })
98
- .where('id', 'in', ids)
99
- .executeTakeFirst()
100
-
101
- // Return the number of updated rows
102
- return Number(result.numUpdatedRows)
103
- }
104
- catch (error) {
105
- if (error instanceof Error) {
106
- throw new TypeError(`Failed to soft delete digital deliveries: ${error.message}`)
107
- }
108
-
109
- throw error
110
- }
111
- }
@@ -1,20 +0,0 @@
1
- type DigitalDeliveryJsonResponse = ModelRow<typeof DigitalDelivery>
2
- import { db } from '@stacksjs/database'
3
-
4
- /**
5
- * Fetch a shipping method by ID
6
- */
7
- export async function fetchById(id: number): Promise<DigitalDeliveryJsonResponse | undefined> {
8
- return await db
9
- .selectFrom('digital_deliveries')
10
- .where('id', '=', id)
11
- .selectAll()
12
- .executeTakeFirst() as DigitalDeliveryJsonResponse | undefined
13
- }
14
-
15
- /**
16
- * Fetch all digital deliveries
17
- */
18
- export async function fetchAll(): Promise<DigitalDeliveryJsonResponse[]> {
19
- return await db.selectFrom('digital_deliveries').selectAll().execute() as DigitalDeliveryJsonResponse[]
20
- }
@@ -1,26 +0,0 @@
1
- // Functions from destroy.ts
2
- export {
3
- bulkDestroy,
4
- bulkSoftDelete,
5
- destroy,
6
- softDelete,
7
- } from './destroy'
8
-
9
- // Functions from fetch.ts
10
- export {
11
- fetchAll,
12
- fetchById,
13
- } from './fetch'
14
-
15
- // Functions from store.ts
16
- export {
17
- bulkStore,
18
- store,
19
- } from './store'
20
-
21
- // Functions from update.ts
22
- export {
23
- update,
24
- updateDeliverySettings,
25
- updateStatus,
26
- } from './update'
@@ -1,76 +0,0 @@
1
- type DigitalDeliveryJsonResponse = ModelRow<typeof DigitalDelivery>
2
- type NewDigitalDelivery = NewModelData<typeof DigitalDelivery>
3
- import { randomUUIDv7 } from 'bun'
4
- import { db } from '@stacksjs/database'
5
- import { fetchById } from './fetch'
6
-
7
- /**
8
- * Create a new digital delivery
9
- *
10
- * @param data The digital delivery data to store
11
- * @returns The newly created digital delivery record
12
- */
13
- export async function store(data: NewDigitalDelivery): Promise<DigitalDeliveryJsonResponse> {
14
- try {
15
- const deliveryData = {
16
- ...data,
17
- uuid: randomUUIDv7(),
18
- }
19
-
20
- const result = await db
21
- .insertInto('digital_deliveries')
22
- .values(deliveryData)
23
- .executeTakeFirst()
24
-
25
- if (!result)
26
- throw new Error('Failed to create digital delivery')
27
-
28
- const insertedId = Number(result.insertId) || Number(result.numInsertedOrUpdatedRows)
29
-
30
- const digitalDelivery = await fetchById(insertedId)
31
-
32
- if (!digitalDelivery)
33
- throw new Error('Failed to create digital delivery')
34
-
35
- return digitalDelivery
36
- }
37
- catch (error) {
38
- if (error instanceof Error) {
39
- throw new TypeError(`Failed to create digital delivery: ${error.message}`)
40
- }
41
-
42
- throw error
43
- }
44
- }
45
-
46
- /**
47
- * Create multiple digital deliveries at once
48
- *
49
- * @param data Array of digital delivery data to store
50
- * @returns Number of digital deliveries created
51
- */
52
- export async function bulkStore(data: NewDigitalDelivery[]): Promise<number> {
53
- if (!data.length)
54
- return 0
55
-
56
- try {
57
- const deliveryDataArray = data.map(item => ({
58
- ...item,
59
- uuid: randomUUIDv7(),
60
- }))
61
-
62
- const result = await db
63
- .insertInto('digital_deliveries')
64
- .values(deliveryDataArray)
65
- .executeTakeFirst()
66
-
67
- return Number(result.numInsertedOrUpdatedRows)
68
- }
69
- catch (error) {
70
- if (error instanceof Error) {
71
- throw new TypeError(`Failed to create digital deliveries in bulk: ${error.message}`)
72
- }
73
-
74
- throw error
75
- }
76
- }
@@ -1,129 +0,0 @@
1
- import { db } from '@stacksjs/database'
2
- // Import dependencies
3
- import { formatDate } from '@stacksjs/orm'
4
- type DigitalDeliveryJsonResponse = ModelRow<typeof DigitalDelivery>
5
- type DigitalDeliveryUpdate = UpdateModelData<typeof DigitalDelivery>
6
-
7
- /**
8
- * Update a digital delivery
9
- *
10
- * @param id The id of the digital delivery to update
11
- * @param data The digital delivery data to update
12
- * @returns The updated digital delivery record
13
- */
14
- export async function update(id: number, data: DigitalDeliveryUpdate): Promise<DigitalDeliveryJsonResponse> {
15
- try {
16
- if (!id)
17
- throw new Error('Digital delivery ID is required for update')
18
-
19
- const result = await db
20
- .updateTable('digital_deliveries')
21
- .set({
22
- ...data,
23
- updated_at: formatDate(new Date()),
24
- })
25
- .where('id', '=', id)
26
- .returningAll()
27
- .executeTakeFirst()
28
-
29
- if (!result)
30
- throw new Error('Failed to update digital delivery')
31
-
32
- return result as DigitalDeliveryJsonResponse
33
- }
34
- catch (error) {
35
- if (error instanceof Error) {
36
- throw new TypeError(`Failed to update digital delivery: ${error.message}`)
37
- }
38
-
39
- throw error
40
- }
41
- }
42
-
43
- /**
44
- * Update a digital delivery's status
45
- *
46
- * @param id The ID of the digital delivery
47
- * @param status The new status
48
- * @returns The updated digital delivery with the new status
49
- */
50
- export async function updateStatus(
51
- id: number,
52
- status: string | string[],
53
- ): Promise<DigitalDeliveryJsonResponse> {
54
- try {
55
- const result = await db
56
- .updateTable('digital_deliveries')
57
- .set({
58
- status,
59
- updated_at: formatDate(new Date()),
60
- })
61
- .where('id', '=', id)
62
- .returningAll()
63
- .executeTakeFirst()
64
-
65
- if (!result)
66
- throw new Error('Failed to update digital delivery status')
67
-
68
- return result as DigitalDeliveryJsonResponse
69
- }
70
- catch (error) {
71
- if (error instanceof Error) {
72
- throw new TypeError(`Failed to update digital delivery status: ${error.message}`)
73
- }
74
-
75
- throw error
76
- }
77
- }
78
-
79
- /**
80
- * Update delivery settings for a digital delivery
81
- *
82
- * @param id The ID of the digital delivery
83
- * @param download_limit Optional updated download limit
84
- * @param expiry_days Optional updated expiry days
85
- * @param requires_login Optional updated requires login flag
86
- * @param automatic_delivery Optional updated automatic delivery flag
87
- * @returns The updated digital delivery
88
- */
89
- export async function updateDeliverySettings(
90
- id: number,
91
- download_limit?: number,
92
- expiry_days?: number,
93
- requires_login?: boolean,
94
- automatic_delivery?: boolean,
95
- ): Promise<DigitalDeliveryJsonResponse> {
96
- try {
97
- const updateData: Record<string, any> = {
98
- updated_at: formatDate(new Date()),
99
- }
100
-
101
- if (download_limit !== undefined)
102
- updateData.download_limit = download_limit
103
- if (expiry_days !== undefined)
104
- updateData.expiry_days = expiry_days
105
- if (requires_login !== undefined)
106
- updateData.requires_login = requires_login
107
- if (automatic_delivery !== undefined)
108
- updateData.automatic_delivery = automatic_delivery
109
-
110
- const result = await db
111
- .updateTable('digital_deliveries')
112
- .set(updateData)
113
- .where('id', '=', id)
114
- .returningAll()
115
- .executeTakeFirst()
116
-
117
- if (!result)
118
- throw new Error('Failed to update delivery settings')
119
-
120
- return result as DigitalDeliveryJsonResponse
121
- }
122
- catch (error) {
123
- if (error instanceof Error) {
124
- throw new TypeError(`Failed to update delivery settings: ${error.message}`)
125
- }
126
-
127
- throw error
128
- }
129
- }
@@ -1,78 +0,0 @@
1
- // Import dependencies
2
- type DriverJsonResponse = ModelRow<typeof Driver>
3
- import { db } from '@stacksjs/database'
4
- import { fetchById } from './fetch'
5
-
6
- /**
7
- * Delete a driver by ID
8
- *
9
- * @param id The ID of the driver to delete
10
- * @returns The deleted driver record
11
- */
12
- export async function destroy(id: number): Promise<DriverJsonResponse | undefined> {
13
- // Check if driver exists
14
- const driver = await fetchById(id)
15
-
16
- if (!driver) {
17
- throw new Error(`Driver with ID ${id} not found`)
18
- }
19
-
20
- try {
21
- // Delete the driver
22
- await db
23
- .deleteFrom('drivers')
24
- .where('id', '=', id)
25
- .execute()
26
-
27
- return driver
28
- }
29
- catch (error) {
30
- if (error instanceof Error) {
31
- throw new TypeError(`Failed to delete driver: ${error.message}`)
32
- }
33
-
34
- throw error
35
- }
36
- }
37
-
38
- /**
39
- * Delete multiple drivers at once
40
- *
41
- * @param ids Array of driver IDs to delete
42
- * @returns Number of drivers deleted
43
- */
44
- export async function bulkDestroy(ids: number[]): Promise<number> {
45
- if (!ids.length)
46
- return 0
47
-
48
- let deletedCount = 0
49
-
50
- try {
51
- // Process each driver deletion in a transaction
52
- await (db as any).transaction().execute(async (trx: any) => {
53
- for (const id of ids) {
54
- // Check if driver exists
55
- const driver = await fetchById(id)
56
-
57
- if (driver) {
58
- // Delete the driver
59
- await trx
60
- .deleteFrom('drivers')
61
- .where('id', '=', id)
62
- .execute()
63
-
64
- deletedCount++
65
- }
66
- }
67
- })
68
-
69
- return deletedCount
70
- }
71
- catch (error) {
72
- if (error instanceof Error) {
73
- throw new TypeError(`Failed to delete drivers in bulk: ${error.message}`)
74
- }
75
-
76
- throw error
77
- }
78
- }
@@ -1,20 +0,0 @@
1
- type DriverJsonResponse = ModelRow<typeof Driver>
2
- import { db } from '@stacksjs/database'
3
-
4
- /**
5
- * Fetch a driver by ID
6
- */
7
- export async function fetchById(id: number): Promise<DriverJsonResponse | undefined> {
8
- return await db
9
- .selectFrom('drivers')
10
- .where('id', '=', id)
11
- .selectAll()
12
- .executeTakeFirst() as DriverJsonResponse | undefined
13
- }
14
-
15
- /**
16
- * Fetch all drivers
17
- */
18
- export async function fetchAll(): Promise<DriverJsonResponse[]> {
19
- return await db.selectFrom('drivers').selectAll().execute() as DriverJsonResponse[]
20
- }
@@ -1,24 +0,0 @@
1
- // Functions from destroy.ts
2
- export {
3
- bulkDestroy,
4
- destroy,
5
- } from './destroy'
6
-
7
- // Functions from fetch.ts
8
- export {
9
- fetchAll,
10
- fetchById,
11
- } from './fetch'
12
-
13
- // Functions from store.ts
14
- export {
15
- bulkStore,
16
- store,
17
- } from './store'
18
-
19
- // Functions from update.ts
20
- export {
21
- update,
22
- updateContact,
23
- updateStatus,
24
- } from './update'
@@ -1,69 +0,0 @@
1
- type DriverJsonResponse = ModelRow<typeof Driver>
2
- type NewDriver = NewModelData<typeof Driver>
3
- import { randomUUIDv7 } from 'bun'
4
- import { db } from '@stacksjs/database'
5
-
6
- /**
7
- * Create a new driver
8
- *
9
- * @param data The driver data to store
10
- * @returns The newly created driver record
11
- */
12
- export async function store(data: NewDriver): Promise<DriverJsonResponse> {
13
- try {
14
- const driverData = {
15
- ...data,
16
- uuid: randomUUIDv7(),
17
- }
18
-
19
- const result = await db
20
- .insertInto('drivers')
21
- .values(driverData)
22
- .returningAll()
23
- .executeTakeFirst()
24
-
25
- if (!result)
26
- throw new Error('Failed to create driver')
27
-
28
- return result as DriverJsonResponse
29
- }
30
- catch (error) {
31
- if (error instanceof Error) {
32
- throw new TypeError(`Failed to create driver: ${error.message}`)
33
- }
34
-
35
- throw error
36
- }
37
- }
38
-
39
- /**
40
- * Create multiple drivers at once
41
- *
42
- * @param data Array of driver data to store
43
- * @returns Number of drivers created
44
- */
45
- export async function bulkStore(data: NewDriver[]): Promise<number> {
46
- if (!data.length)
47
- return 0
48
-
49
- try {
50
- const driverDataArray = data.map(item => ({
51
- ...item,
52
- uuid: randomUUIDv7(),
53
- }))
54
-
55
- const result = await db
56
- .insertInto('drivers')
57
- .values(driverDataArray)
58
- .executeTakeFirst()
59
-
60
- return Number(result.numInsertedOrUpdatedRows)
61
- }
62
- catch (error) {
63
- if (error instanceof Error) {
64
- throw new TypeError(`Failed to create drivers in bulk: ${error.message}`)
65
- }
66
-
67
- throw error
68
- }
69
- }