@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.
- package/package.json +10 -7
- package/src/carts/destroy.ts +0 -54
- package/src/carts/fetch.ts +0 -20
- package/src/carts/index.ts +0 -13
- package/src/carts/store.ts +0 -75
- package/src/carts/update.ts +0 -78
- package/src/coupons/destroy.ts +0 -49
- package/src/coupons/fetch.ts +0 -510
- package/src/coupons/index.ts +0 -30
- package/src/coupons/store.ts +0 -46
- package/src/coupons/update.ts +0 -147
- package/src/customers/destroy.ts +0 -62
- package/src/customers/fetch.ts +0 -20
- package/src/customers/index.ts +0 -17
- package/src/customers/store.ts +0 -45
- package/src/customers/update.ts +0 -44
- package/src/devices/destroy.ts +0 -54
- package/src/devices/export.ts +0 -98
- package/src/devices/fetch.ts +0 -125
- package/src/devices/index.ts +0 -31
- package/src/devices/store.ts +0 -82
- package/src/devices/update.ts +0 -125
- package/src/errors/destroy.ts +0 -54
- package/src/errors/fetch.ts +0 -197
- package/src/errors/index.ts +0 -28
- package/src/errors/update.ts +0 -116
- package/src/gift-cards/destroy.ts +0 -87
- package/src/gift-cards/fetch.ts +0 -431
- package/src/gift-cards/index.ts +0 -26
- package/src/gift-cards/store.ts +0 -56
- package/src/gift-cards/update.ts +0 -102
- package/src/index.ts +0 -78
- package/src/orders/destroy.ts +0 -111
- package/src/orders/events.ts +0 -121
- package/src/orders/export.ts +0 -158
- package/src/orders/fetch.ts +0 -379
- package/src/orders/guards.ts +0 -261
- package/src/orders/index.ts +0 -91
- package/src/orders/place-order.ts +0 -274
- package/src/orders/store.ts +0 -51
- package/src/orders/totals.ts +0 -190
- package/src/orders/update.ts +0 -164
- package/src/orders/webhook.ts +0 -312
- package/src/payments/destroy.ts +0 -56
- package/src/payments/fetch.ts +0 -288
- package/src/payments/index.ts +0 -16
- package/src/payments/store.ts +0 -63
- package/src/payments/update.ts +0 -52
- package/src/product.ts +0 -0
- package/src/products/categories/destroy.ts +0 -103
- package/src/products/categories/fetch.ts +0 -285
- package/src/products/categories/index.ts +0 -36
- package/src/products/categories/store.ts +0 -87
- package/src/products/categories/update.ts +0 -251
- package/src/products/index.ts +0 -35
- package/src/products/items/destroy.ts +0 -54
- package/src/products/items/fetch.ts +0 -282
- package/src/products/items/index.ts +0 -26
- package/src/products/items/store.ts +0 -84
- package/src/products/items/update.ts +0 -324
- package/src/products/manufacturers/destroy.ts +0 -56
- package/src/products/manufacturers/fetch.ts +0 -117
- package/src/products/manufacturers/index.ts +0 -24
- package/src/products/manufacturers/store.ts +0 -82
- package/src/products/manufacturers/update.ts +0 -113
- package/src/products/reviews/destroy.ts +0 -56
- package/src/products/reviews/fetch.ts +0 -63
- package/src/products/reviews/index.ts +0 -25
- package/src/products/reviews/store.ts +0 -46
- package/src/products/reviews/update.ts +0 -82
- package/src/products/units/destroy.ts +0 -56
- package/src/products/units/fetch.ts +0 -20
- package/src/products/units/index.ts +0 -13
- package/src/products/units/store.ts +0 -162
- package/src/products/units/update.ts +0 -159
- package/src/products/variants/destroy.ts +0 -56
- package/src/products/variants/fetch.ts +0 -20
- package/src/products/variants/index.ts +0 -21
- package/src/products/variants/store.ts +0 -136
- package/src/products/variants/update.ts +0 -104
- package/src/receipts/destroy.ts +0 -54
- package/src/receipts/export.ts +0 -0
- package/src/receipts/fetch.ts +0 -222
- package/src/receipts/index.ts +0 -24
- package/src/receipts/printer.ts +0 -69
- package/src/receipts/store.ts +0 -69
- package/src/receipts/update.ts +0 -124
- package/src/shippings/delivery-routes/destroy.ts +0 -54
- package/src/shippings/delivery-routes/fetch.ts +0 -42
- package/src/shippings/delivery-routes/index.ts +0 -26
- package/src/shippings/delivery-routes/store.ts +0 -69
- package/src/shippings/delivery-routes/update.ts +0 -120
- package/src/shippings/digital-deliveries/destroy.ts +0 -111
- package/src/shippings/digital-deliveries/fetch.ts +0 -20
- package/src/shippings/digital-deliveries/index.ts +0 -26
- package/src/shippings/digital-deliveries/store.ts +0 -76
- package/src/shippings/digital-deliveries/update.ts +0 -129
- package/src/shippings/drivers/destroy.ts +0 -78
- package/src/shippings/drivers/fetch.ts +0 -20
- package/src/shippings/drivers/index.ts +0 -24
- package/src/shippings/drivers/store.ts +0 -69
- package/src/shippings/drivers/update.ts +0 -117
- package/src/shippings/index.ts +0 -39
- package/src/shippings/license-keys/destroy.ts +0 -111
- package/src/shippings/license-keys/fetch.ts +0 -20
- package/src/shippings/license-keys/index.ts +0 -26
- package/src/shippings/license-keys/store.ts +0 -77
- package/src/shippings/license-keys/update.ts +0 -117
- package/src/shippings/shipping-methods/destroy.ts +0 -111
- package/src/shippings/shipping-methods/fetch.ts +0 -62
- package/src/shippings/shipping-methods/index.ts +0 -28
- package/src/shippings/shipping-methods/store.ts +0 -123
- package/src/shippings/shipping-methods/update.ts +0 -120
- package/src/shippings/shipping-rates/destroy.ts +0 -102
- package/src/shippings/shipping-rates/fetch.ts +0 -320
- package/src/shippings/shipping-rates/index.ts +0 -36
- package/src/shippings/shipping-rates/store.ts +0 -102
- package/src/shippings/shipping-rates/update.ts +0 -139
- package/src/shippings/shipping-zones/destroy.ts +0 -111
- package/src/shippings/shipping-zones/fetch.ts +0 -96
- package/src/shippings/shipping-zones/index.ts +0 -26
- package/src/shippings/shipping-zones/store.ts +0 -74
- package/src/shippings/shipping-zones/update.ts +0 -156
- package/src/tax/destroy.ts +0 -54
- package/src/tax/fetch.ts +0 -20
- package/src/tax/index.ts +0 -24
- package/src/tax/store.ts +0 -69
- package/src/tax/update.ts +0 -119
- package/src/tests/coupons.test.ts +0 -90
- package/src/tests/customers.test.ts +0 -39
- package/src/tests/device.test.ts +0 -111
- package/src/tests/digitals.test.ts +0 -31
- package/src/tests/drivers.test.ts +0 -25
- package/src/tests/gift-cards.test.ts +0 -36
- package/src/tests/license.test.ts +0 -31
- package/src/tests/manufacturers.test.ts +0 -80
- package/src/tests/orders.test.ts +0 -25
- package/src/tests/payments.test.ts +0 -75
- package/src/tests/rates.test.ts +0 -367
- package/src/tests/receipts.test.ts +0 -287
- package/src/tests/restaurant.test.ts +0 -522
- package/src/tests/reviews.test.ts +0 -165
- package/src/tests/routes.test.ts +0 -51
- package/src/tests/setup.ts +0 -149
- package/src/tests/shipping.test.ts +0 -88
- package/src/tests/tax.test.ts +0 -25
- package/src/tests/units.test.ts +0 -110
- package/src/tests/variants.test.ts +0 -133
- package/src/tests/waitlist.test.ts +0 -303
- package/src/tests/zones.test.ts +0 -86
- package/src/types.ts +0 -312
- package/src/utils/typed-stats.ts +0 -67
- package/src/waitlists/index.ts +0 -19
- package/src/waitlists/products/destroy.ts +0 -65
- package/src/waitlists/products/export.ts +0 -113
- package/src/waitlists/products/fetch.ts +0 -362
- package/src/waitlists/products/index.ts +0 -33
- package/src/waitlists/products/store.ts +0 -112
- package/src/waitlists/products/update.ts +0 -125
- package/src/waitlists/restaurant/destroy.ts +0 -65
- package/src/waitlists/restaurant/export.ts +0 -107
- package/src/waitlists/restaurant/fetch.ts +0 -538
- package/src/waitlists/restaurant/index.ts +0 -43
- package/src/waitlists/restaurant/store.ts +0 -109
- package/src/waitlists/restaurant/update.ts +0 -198
- /package/dist/{src/coupons → coupons}/destroy.d.ts +0 -0
- /package/dist/{src/coupons → coupons}/fetch.d.ts +0 -0
- /package/dist/{src/coupons → coupons}/index.d.ts +0 -0
- /package/dist/{src/coupons → coupons}/store.d.ts +0 -0
- /package/dist/{src/coupons → coupons}/update.d.ts +0 -0
- /package/dist/{src/customers → customers}/destroy.d.ts +0 -0
- /package/dist/{src/customers → customers}/fetch.d.ts +0 -0
- /package/dist/{src/customers → customers}/index.d.ts +0 -0
- /package/dist/{src/customers → customers}/store.d.ts +0 -0
- /package/dist/{src/customers → customers}/update.d.ts +0 -0
- /package/dist/{src/devices → devices}/destroy.d.ts +0 -0
- /package/dist/{src/devices → devices}/export.d.ts +0 -0
- /package/dist/{src/devices → devices}/fetch.d.ts +0 -0
- /package/dist/{src/devices → devices}/index.d.ts +0 -0
- /package/dist/{src/devices → devices}/store.d.ts +0 -0
- /package/dist/{src/devices → devices}/update.d.ts +0 -0
- /package/dist/{src/errors → errors}/destroy.d.ts +0 -0
- /package/dist/{src/errors → errors}/fetch.d.ts +0 -0
- /package/dist/{src/errors → errors}/index.d.ts +0 -0
- /package/dist/{src/errors → errors}/update.d.ts +0 -0
- /package/dist/{src/gift-cards → gift-cards}/destroy.d.ts +0 -0
- /package/dist/{src/gift-cards → gift-cards}/fetch.d.ts +0 -0
- /package/dist/{src/gift-cards → gift-cards}/index.d.ts +0 -0
- /package/dist/{src/gift-cards → gift-cards}/store.d.ts +0 -0
- /package/dist/{src/gift-cards → gift-cards}/update.d.ts +0 -0
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{src/orders → orders}/destroy.d.ts +0 -0
- /package/dist/{src/orders → orders}/events.d.ts +0 -0
- /package/dist/{src/orders → orders}/export.d.ts +0 -0
- /package/dist/{src/orders → orders}/fetch.d.ts +0 -0
- /package/dist/{src/orders → orders}/guards.d.ts +0 -0
- /package/dist/{src/orders → orders}/index.d.ts +0 -0
- /package/dist/{src/orders → orders}/place-order.d.ts +0 -0
- /package/dist/{src/orders → orders}/store.d.ts +0 -0
- /package/dist/{src/orders → orders}/totals.d.ts +0 -0
- /package/dist/{src/orders → orders}/update.d.ts +0 -0
- /package/dist/{src/orders → orders}/webhook.d.ts +0 -0
- /package/dist/{src/payments → payments}/destroy.d.ts +0 -0
- /package/dist/{src/payments → payments}/fetch.d.ts +0 -0
- /package/dist/{src/payments → payments}/index.d.ts +0 -0
- /package/dist/{src/payments → payments}/store.d.ts +0 -0
- /package/dist/{src/payments → payments}/update.d.ts +0 -0
- /package/dist/{src/products → products}/categories/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/categories/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/categories/index.d.ts +0 -0
- /package/dist/{src/products → products}/categories/store.d.ts +0 -0
- /package/dist/{src/products → products}/categories/update.d.ts +0 -0
- /package/dist/{src/products → products}/index.d.ts +0 -0
- /package/dist/{src/products → products}/items/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/items/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/items/index.d.ts +0 -0
- /package/dist/{src/products → products}/items/store.d.ts +0 -0
- /package/dist/{src/products → products}/items/update.d.ts +0 -0
- /package/dist/{src/products → products}/manufacturers/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/manufacturers/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/manufacturers/index.d.ts +0 -0
- /package/dist/{src/products → products}/manufacturers/store.d.ts +0 -0
- /package/dist/{src/products → products}/manufacturers/update.d.ts +0 -0
- /package/dist/{src/products → products}/reviews/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/reviews/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/reviews/index.d.ts +0 -0
- /package/dist/{src/products → products}/reviews/store.d.ts +0 -0
- /package/dist/{src/products → products}/reviews/update.d.ts +0 -0
- /package/dist/{src/products → products}/units/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/units/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/units/index.d.ts +0 -0
- /package/dist/{src/products → products}/units/store.d.ts +0 -0
- /package/dist/{src/products → products}/units/update.d.ts +0 -0
- /package/dist/{src/products → products}/variants/destroy.d.ts +0 -0
- /package/dist/{src/products → products}/variants/fetch.d.ts +0 -0
- /package/dist/{src/products → products}/variants/index.d.ts +0 -0
- /package/dist/{src/products → products}/variants/store.d.ts +0 -0
- /package/dist/{src/products → products}/variants/update.d.ts +0 -0
- /package/dist/{src/receipts → receipts}/destroy.d.ts +0 -0
- /package/dist/{src/receipts → receipts}/fetch.d.ts +0 -0
- /package/dist/{src/receipts → receipts}/index.d.ts +0 -0
- /package/dist/{src/receipts → receipts}/store.d.ts +0 -0
- /package/dist/{src/receipts → receipts}/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/delivery-routes/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/delivery-routes/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/delivery-routes/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/delivery-routes/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/delivery-routes/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/digital-deliveries/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/digital-deliveries/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/digital-deliveries/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/digital-deliveries/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/digital-deliveries/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/drivers/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/drivers/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/drivers/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/drivers/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/drivers/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/license-keys/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/license-keys/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/license-keys/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/license-keys/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/license-keys/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-methods/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-methods/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-methods/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-methods/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-methods/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-rates/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-rates/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-rates/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-rates/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-rates/update.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-zones/destroy.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-zones/fetch.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-zones/index.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-zones/store.d.ts +0 -0
- /package/dist/{src/shippings → shippings}/shipping-zones/update.d.ts +0 -0
- /package/dist/{src/tax → tax}/destroy.d.ts +0 -0
- /package/dist/{src/tax → tax}/fetch.d.ts +0 -0
- /package/dist/{src/tax → tax}/index.d.ts +0 -0
- /package/dist/{src/tax → tax}/store.d.ts +0 -0
- /package/dist/{src/tax → tax}/update.d.ts +0 -0
- /package/dist/{src/types.d.ts → types.d.ts} +0 -0
- /package/dist/{src/utils → utils}/typed-stats.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/index.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/products/destroy.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/products/fetch.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/products/index.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/products/store.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/products/update.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/restaurant/destroy.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/restaurant/fetch.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/restaurant/index.d.ts +0 -0
- /package/dist/{src/waitlists → waitlists}/restaurant/store.d.ts +0 -0
- /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
|
-
}
|