@rovela-ai/sdk 0.1.51 → 0.1.53

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 (62) hide show
  1. package/dist/admin/api/index.d.ts +13 -0
  2. package/dist/admin/api/index.d.ts.map +1 -1
  3. package/dist/admin/api/index.js +14 -0
  4. package/dist/admin/api/index.js.map +1 -1
  5. package/dist/admin/api/settings.d.ts +2 -1
  6. package/dist/admin/api/settings.d.ts.map +1 -1
  7. package/dist/admin/api/settings.js +9 -1
  8. package/dist/admin/api/settings.js.map +1 -1
  9. package/dist/admin/api/shipping.d.ts +148 -0
  10. package/dist/admin/api/shipping.d.ts.map +1 -0
  11. package/dist/admin/api/shipping.js +373 -0
  12. package/dist/admin/api/shipping.js.map +1 -0
  13. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  14. package/dist/admin/components/AdminNav.js +5 -1
  15. package/dist/admin/components/AdminNav.js.map +1 -1
  16. package/dist/admin/components/ShippingSettings.d.ts +3 -0
  17. package/dist/admin/components/ShippingSettings.d.ts.map +1 -0
  18. package/dist/admin/components/ShippingSettings.js +322 -0
  19. package/dist/admin/components/ShippingSettings.js.map +1 -0
  20. package/dist/admin/components/StoreSettings.d.ts.map +1 -1
  21. package/dist/admin/components/StoreSettings.js +1 -8
  22. package/dist/admin/components/StoreSettings.js.map +1 -1
  23. package/dist/admin/components/index.d.ts +1 -0
  24. package/dist/admin/components/index.d.ts.map +1 -1
  25. package/dist/admin/components/index.js +4 -0
  26. package/dist/admin/components/index.js.map +1 -1
  27. package/dist/admin/index.d.ts +3 -3
  28. package/dist/admin/index.d.ts.map +1 -1
  29. package/dist/admin/index.js +7 -1
  30. package/dist/admin/index.js.map +1 -1
  31. package/dist/admin/types.d.ts +79 -2
  32. package/dist/admin/types.d.ts.map +1 -1
  33. package/dist/cart/index.d.ts +1 -1
  34. package/dist/cart/index.d.ts.map +1 -1
  35. package/dist/cart/index.js +1 -1
  36. package/dist/cart/index.js.map +1 -1
  37. package/dist/cart/store.d.ts +22 -0
  38. package/dist/cart/store.d.ts.map +1 -1
  39. package/dist/cart/store.js +56 -0
  40. package/dist/cart/store.js.map +1 -1
  41. package/dist/checkout/hooks/useCheckout.d.ts.map +1 -1
  42. package/dist/checkout/hooks/useCheckout.js +5 -19
  43. package/dist/checkout/hooks/useCheckout.js.map +1 -1
  44. package/dist/checkout/server/create-checkout-session.d.ts +7 -0
  45. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  46. package/dist/checkout/server/create-checkout-session.js +134 -4
  47. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  48. package/dist/checkout/stripe/client.d.ts +4 -2
  49. package/dist/checkout/stripe/client.d.ts.map +1 -1
  50. package/dist/checkout/stripe/client.js +4 -2
  51. package/dist/checkout/stripe/client.js.map +1 -1
  52. package/dist/core/db/queries.d.ts +107 -2
  53. package/dist/core/db/queries.d.ts.map +1 -1
  54. package/dist/core/db/queries.js +199 -0
  55. package/dist/core/db/queries.js.map +1 -1
  56. package/dist/core/db/schema.d.ts +407 -0
  57. package/dist/core/db/schema.d.ts.map +1 -1
  58. package/dist/core/db/schema.js +45 -0
  59. package/dist/core/db/schema.js.map +1 -1
  60. package/dist/core/types.d.ts +31 -0
  61. package/dist/core/types.d.ts.map +1 -1
  62. package/package.json +1 -1
@@ -5,6 +5,89 @@
5
5
  * The payment is processed ON the connected account, not the platform.
6
6
  */
7
7
  import { getStripe, getConnectedAccountId, calculateApplicationFee, getStoreCurrency, getAllowedShippingCountries, } from '../stripe/client';
8
+ import { findSettings, findActiveShippingZones, } from '../../core/db/queries';
9
+ // =============================================================================
10
+ // Shipping Helpers
11
+ // =============================================================================
12
+ /**
13
+ * Get shipping countries from database settings.
14
+ * Falls back to environment variable if DB unavailable.
15
+ */
16
+ async function getShippingCountriesFromSettings() {
17
+ try {
18
+ const settings = await findSettings();
19
+ if (settings?.shippingCountries && settings.shippingCountries.length > 0) {
20
+ return settings.shippingCountries;
21
+ }
22
+ }
23
+ catch (error) {
24
+ console.warn('[Checkout] Failed to fetch shipping countries from DB, using env fallback:', error);
25
+ }
26
+ // Fallback to environment variable
27
+ return getAllowedShippingCountries();
28
+ }
29
+ /**
30
+ * Build Stripe shipping options from shipping zones and rates.
31
+ *
32
+ * @param zones - Active shipping zones with their rates
33
+ * @param orderAmountCents - Cart subtotal in cents for min/max filtering
34
+ * @param currency - Currency code for shipping rates
35
+ * @returns Stripe shipping rate data array
36
+ */
37
+ function buildStripeShippingOptions(zones, orderAmountCents, currency) {
38
+ const options = [];
39
+ const orderAmountDollars = orderAmountCents / 100;
40
+ for (const zone of zones) {
41
+ for (const rate of zone.rates) {
42
+ // Filter by order amount constraints
43
+ if (rate.minOrderAmount !== null && orderAmountDollars < rate.minOrderAmount) {
44
+ continue;
45
+ }
46
+ if (rate.maxOrderAmount !== null && orderAmountDollars > rate.maxOrderAmount) {
47
+ continue;
48
+ }
49
+ // Build delivery estimate from estimatedDays string (e.g., "3-5" or "3-5 business days")
50
+ let deliveryEstimate;
51
+ if (rate.estimatedDays) {
52
+ // Extract numbers from the string (handles "3-5", "3-5 business days", "3", etc.)
53
+ const dayMatches = rate.estimatedDays.match(/\d+/g);
54
+ if (dayMatches && dayMatches.length > 0) {
55
+ const minDays = parseInt(dayMatches[0], 10);
56
+ const maxDays = dayMatches.length > 1 ? parseInt(dayMatches[1], 10) : minDays;
57
+ deliveryEstimate = {
58
+ minimum: {
59
+ unit: 'business_day',
60
+ value: minDays,
61
+ },
62
+ maximum: {
63
+ unit: 'business_day',
64
+ value: maxDays,
65
+ },
66
+ };
67
+ }
68
+ }
69
+ // Convert price from dollars to cents
70
+ const priceInCents = Math.round(rate.price * 100);
71
+ options.push({
72
+ shipping_rate_data: {
73
+ type: 'fixed_amount',
74
+ fixed_amount: {
75
+ amount: priceInCents,
76
+ currency: currency.toLowerCase(),
77
+ },
78
+ display_name: rate.name,
79
+ delivery_estimate: deliveryEstimate,
80
+ metadata: {
81
+ zoneId: zone.id,
82
+ zoneName: zone.name,
83
+ rateId: rate.id,
84
+ },
85
+ },
86
+ });
87
+ }
88
+ }
89
+ return options;
90
+ }
8
91
  // =============================================================================
9
92
  // Main Function
10
93
  // =============================================================================
@@ -34,7 +117,14 @@ export async function createCheckoutSession(request, options = {}) {
34
117
  const stripe = getStripe();
35
118
  const connectedAccountId = getConnectedAccountId();
36
119
  const currency = getStoreCurrency();
37
- const { collectShippingAddress = true, collectPhoneNumber = false, allowPromotionCodes = false, automaticTax = false, applicationFeeAmount, } = options;
120
+ // Fetch store settings once for shipping configuration
121
+ const storeSettings = await findSettings();
122
+ const freeShippingThreshold = storeSettings?.freeShippingThreshold ?? 0;
123
+ const { collectShippingAddress = true, shippingEnabled: shippingEnabledOverride, collectPhoneNumber = false, allowPromotionCodes = false, automaticTax = false, applicationFeeAmount, } = options;
124
+ // Use override if provided, otherwise use database setting (default: true)
125
+ const isShippingEnabled = shippingEnabledOverride ?? storeSettings?.shippingEnabled ?? true;
126
+ // Only collect shipping if enabled in store settings AND option allows it
127
+ const shouldCollectShipping = isShippingEnabled && collectShippingAddress;
38
128
  // Validate request
39
129
  if (!request.items || request.items.length === 0) {
40
130
  throw new Error('No items provided for checkout');
@@ -90,11 +180,51 @@ export async function createCheckoutSession(request, options = {}) {
90
180
  if (request.customerEmail) {
91
181
  sessionParams.customer_email = request.customerEmail;
92
182
  }
93
- // Collect shipping address if enabled
94
- if (collectShippingAddress) {
183
+ // Collect shipping address if enabled in store settings AND option allows it
184
+ if (shouldCollectShipping) {
185
+ // Get shipping countries from database settings (with env fallback)
186
+ const shippingCountries = await getShippingCountriesFromSettings();
95
187
  sessionParams.shipping_address_collection = {
96
- allowed_countries: getAllowedShippingCountries(),
188
+ allowed_countries: shippingCountries,
97
189
  };
190
+ // Fetch shipping zones and build shipping options
191
+ try {
192
+ const zones = await findActiveShippingZones();
193
+ let shippingOptions = buildStripeShippingOptions(zones, subtotal, currency);
194
+ // Add free shipping option if order meets threshold
195
+ const orderAmountDollars = subtotal / 100;
196
+ if (freeShippingThreshold > 0 && orderAmountDollars >= freeShippingThreshold) {
197
+ // Prepend free shipping as the first (best) option
198
+ shippingOptions = [
199
+ {
200
+ shipping_rate_data: {
201
+ type: 'fixed_amount',
202
+ fixed_amount: {
203
+ amount: 0,
204
+ currency: currency.toLowerCase(),
205
+ },
206
+ display_name: 'Free Shipping',
207
+ delivery_estimate: {
208
+ minimum: { unit: 'business_day', value: 3 },
209
+ maximum: { unit: 'business_day', value: 7 },
210
+ },
211
+ metadata: {
212
+ freeShipping: 'true',
213
+ thresholdMet: String(freeShippingThreshold),
214
+ },
215
+ },
216
+ },
217
+ ...shippingOptions,
218
+ ];
219
+ }
220
+ if (shippingOptions.length > 0) {
221
+ sessionParams.shipping_options = shippingOptions;
222
+ }
223
+ }
224
+ catch (error) {
225
+ // Log but don't fail checkout - shipping will just not show options
226
+ console.warn('[Checkout] Failed to fetch shipping options:', error);
227
+ }
98
228
  }
99
229
  // Collect phone number if enabled
100
230
  if (collectPhoneNumber) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-checkout-session.js","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-checkout-session.js","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"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"}
@@ -60,8 +60,10 @@ export declare function getAllWebhookSecrets(): string[];
60
60
  */
61
61
  export declare function getStoreCurrency(): string;
62
62
  /**
63
- * Get allowed countries for shipping.
64
- * Default is US and CA if not configured.
63
+ * Get allowed countries for shipping from environment variable.
64
+ * This is a synchronous fallback when database is not available.
65
+ * Prefer using getShippingCountriesFromSettings() when possible.
66
+ * @deprecated Use getShippingCountriesFromSettings() for dynamic configuration
65
67
  */
66
68
  export declare function getAllowedShippingCountries(): string[];
67
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/checkout/stripe/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAQ3B;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAsBlC;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAY9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgB9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGrE;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAqB/C;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAQtD;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAY1C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/checkout/stripe/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAQ3B;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAsBlC;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAY9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgB9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGrE;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAqB/C;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAQtD;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAY1C"}
@@ -144,8 +144,10 @@ export function getStoreCurrency() {
144
144
  return process.env.STORE_CURRENCY || 'usd';
145
145
  }
146
146
  /**
147
- * Get allowed countries for shipping.
148
- * Default is US and CA if not configured.
147
+ * Get allowed countries for shipping from environment variable.
148
+ * This is a synchronous fallback when database is not available.
149
+ * Prefer using getShippingCountriesFromSettings() when possible.
150
+ * @deprecated Use getShippingCountriesFromSettings() for dynamic configuration
149
151
  */
150
152
  export function getAllowedShippingCountries() {
151
153
  const countries = process.env.SHIPPING_COUNTRIES;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/checkout/stripe/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/checkout/stripe/client.ts"],"names":[],"mappings":"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"}
@@ -390,8 +390,8 @@ export declare function getRecentOrders(limit?: number): Promise<{
390
390
  * Create a new order
391
391
  */
392
392
  export declare function createOrder(data: schema.NewOrder): Promise<{
393
- id: string;
394
393
  status: "pending" | "paid" | "shipped" | "delivered" | "cancelled" | "refunded";
394
+ id: string;
395
395
  createdAt: Date;
396
396
  updatedAt: Date;
397
397
  customerId: string | null;
@@ -429,8 +429,8 @@ export declare function createOrder(data: schema.NewOrder): Promise<{
429
429
  * Create order items for an order
430
430
  */
431
431
  export declare function createOrderItems(items: schema.NewOrderItem[]): Promise<{
432
- id: string;
433
432
  name: string;
433
+ id: string;
434
434
  price: string;
435
435
  createdAt: Date;
436
436
  productId: string;
@@ -676,6 +676,7 @@ export interface StoreSettingsData {
676
676
  taxRate: number | null;
677
677
  shippingEnabled: boolean | null;
678
678
  freeShippingThreshold: number | null;
679
+ shippingCountries: string[] | null;
679
680
  }
680
681
  /**
681
682
  * Find store settings.
@@ -688,4 +689,108 @@ export declare function findSettings(): Promise<StoreSettingsData | null>;
688
689
  * Each store has only one settings row.
689
690
  */
690
691
  export declare function upsertSettings(data: Partial<StoreSettingsData>): Promise<StoreSettingsData>;
692
+ /**
693
+ * Shipping zone with nested rates for API responses
694
+ */
695
+ export interface ShippingZoneWithRates {
696
+ id: string;
697
+ name: string;
698
+ countries: string[];
699
+ isActive: boolean;
700
+ sortOrder: number;
701
+ createdAt: Date;
702
+ updatedAt: Date;
703
+ rates: Array<{
704
+ id: string;
705
+ name: string;
706
+ description: string | null;
707
+ price: number;
708
+ minOrderAmount: number | null;
709
+ maxOrderAmount: number | null;
710
+ estimatedDays: string | null;
711
+ isActive: boolean;
712
+ sortOrder: number;
713
+ }>;
714
+ }
715
+ /**
716
+ * Find all shipping zones with their rates
717
+ */
718
+ export declare function findShippingZones(): Promise<ShippingZoneWithRates[]>;
719
+ /**
720
+ * Find active shipping zones only
721
+ */
722
+ export declare function findActiveShippingZones(): Promise<ShippingZoneWithRates[]>;
723
+ /**
724
+ * Find a shipping zone by ID
725
+ */
726
+ export declare function findShippingZoneById(id: string): Promise<ShippingZoneWithRates | null>;
727
+ /**
728
+ * Create a new shipping zone
729
+ */
730
+ export declare function createShippingZone(data: {
731
+ name: string;
732
+ countries: string[];
733
+ isActive?: boolean;
734
+ sortOrder?: number;
735
+ }): Promise<schema.ShippingZone>;
736
+ /**
737
+ * Update a shipping zone
738
+ */
739
+ export declare function updateShippingZone(id: string, data: Partial<{
740
+ name: string;
741
+ countries: string[];
742
+ isActive: boolean;
743
+ sortOrder: number;
744
+ }>): Promise<schema.ShippingZone | null>;
745
+ /**
746
+ * Delete a shipping zone (cascades to rates)
747
+ */
748
+ export declare function deleteShippingZone(id: string): Promise<boolean>;
749
+ /**
750
+ * Create a shipping rate for a zone
751
+ */
752
+ export declare function createShippingRate(data: {
753
+ zoneId: string;
754
+ name: string;
755
+ description?: string;
756
+ price: number;
757
+ minOrderAmount?: number;
758
+ maxOrderAmount?: number;
759
+ estimatedDays?: string;
760
+ isActive?: boolean;
761
+ sortOrder?: number;
762
+ }): Promise<schema.ShippingRate>;
763
+ /**
764
+ * Update a shipping rate
765
+ */
766
+ export declare function updateShippingRate(id: string, data: Partial<{
767
+ name: string;
768
+ description: string | null;
769
+ price: number;
770
+ minOrderAmount: number | null;
771
+ maxOrderAmount: number | null;
772
+ estimatedDays: string | null;
773
+ isActive: boolean;
774
+ sortOrder: number;
775
+ }>): Promise<schema.ShippingRate | null>;
776
+ /**
777
+ * Delete a shipping rate
778
+ */
779
+ export declare function deleteShippingRate(id: string): Promise<boolean>;
780
+ /**
781
+ * Find shipping rates applicable to a specific country and order amount.
782
+ * Used during checkout to determine which shipping options to show.
783
+ *
784
+ * @param country - ISO country code (e.g., 'US', 'CA')
785
+ * @param orderAmount - Order subtotal in dollars
786
+ * @returns Array of applicable shipping rates
787
+ */
788
+ export declare function findShippingRatesForCountry(country: string, orderAmount: number): Promise<Array<{
789
+ id: string;
790
+ zoneName: string;
791
+ name: string;
792
+ description: string | null;
793
+ price: number;
794
+ estimatedDays: string | null;
795
+ }>>;
691
796
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/core/db/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/core/db/queries.ts"],"names":[],"mappings":"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"}
@@ -686,6 +686,7 @@ export async function findSettings() {
686
686
  freeShippingThreshold: settings.freeShippingThreshold
687
687
  ? Number(settings.freeShippingThreshold)
688
688
  : null,
689
+ shippingCountries: settings.shippingCountries,
689
690
  };
690
691
  }
691
692
  /**
@@ -712,6 +713,7 @@ export async function upsertSettings(data) {
712
713
  freeShippingThreshold: data.freeShippingThreshold !== null && data.freeShippingThreshold !== undefined
713
714
  ? String(data.freeShippingThreshold)
714
715
  : undefined,
716
+ shippingCountries: data.shippingCountries ?? undefined,
715
717
  updatedAt: new Date(),
716
718
  };
717
719
  let result;
@@ -741,6 +743,203 @@ export async function upsertSettings(data) {
741
743
  freeShippingThreshold: result.freeShippingThreshold
742
744
  ? Number(result.freeShippingThreshold)
743
745
  : null,
746
+ shippingCountries: result.shippingCountries,
744
747
  };
745
748
  }
749
+ /**
750
+ * Find all shipping zones with their rates
751
+ */
752
+ export async function findShippingZones() {
753
+ const db = getDb();
754
+ // Get all zones
755
+ const zones = await db
756
+ .select()
757
+ .from(schema.shippingZones)
758
+ .orderBy(asc(schema.shippingZones.sortOrder), asc(schema.shippingZones.name));
759
+ // Get all rates
760
+ const rates = await db
761
+ .select()
762
+ .from(schema.shippingRates)
763
+ .orderBy(asc(schema.shippingRates.sortOrder), asc(schema.shippingRates.name));
764
+ // Group rates by zone
765
+ const ratesByZone = new Map();
766
+ for (const rate of rates) {
767
+ const existing = ratesByZone.get(rate.zoneId) || [];
768
+ existing.push(rate);
769
+ ratesByZone.set(rate.zoneId, existing);
770
+ }
771
+ // Combine zones with their rates
772
+ return zones.map((zone) => ({
773
+ id: zone.id,
774
+ name: zone.name,
775
+ countries: zone.countries || [],
776
+ isActive: zone.isActive,
777
+ sortOrder: zone.sortOrder,
778
+ createdAt: zone.createdAt,
779
+ updatedAt: zone.updatedAt,
780
+ rates: (ratesByZone.get(zone.id) || []).map((rate) => ({
781
+ id: rate.id,
782
+ name: rate.name,
783
+ description: rate.description,
784
+ price: Number(rate.price),
785
+ minOrderAmount: rate.minOrderAmount ? Number(rate.minOrderAmount) : null,
786
+ maxOrderAmount: rate.maxOrderAmount ? Number(rate.maxOrderAmount) : null,
787
+ estimatedDays: rate.estimatedDays,
788
+ isActive: rate.isActive,
789
+ sortOrder: rate.sortOrder,
790
+ })),
791
+ }));
792
+ }
793
+ /**
794
+ * Find active shipping zones only
795
+ */
796
+ export async function findActiveShippingZones() {
797
+ const allZones = await findShippingZones();
798
+ return allZones.filter((zone) => zone.isActive);
799
+ }
800
+ /**
801
+ * Find a shipping zone by ID
802
+ */
803
+ export async function findShippingZoneById(id) {
804
+ const zones = await findShippingZones();
805
+ return zones.find((z) => z.id === id) || null;
806
+ }
807
+ /**
808
+ * Create a new shipping zone
809
+ */
810
+ export async function createShippingZone(data) {
811
+ const db = getDb();
812
+ const [zone] = await db
813
+ .insert(schema.shippingZones)
814
+ .values({
815
+ name: data.name,
816
+ countries: data.countries,
817
+ isActive: data.isActive ?? true,
818
+ sortOrder: data.sortOrder ?? 0,
819
+ })
820
+ .returning();
821
+ return zone;
822
+ }
823
+ /**
824
+ * Update a shipping zone
825
+ */
826
+ export async function updateShippingZone(id, data) {
827
+ const db = getDb();
828
+ const [zone] = await db
829
+ .update(schema.shippingZones)
830
+ .set({ ...data, updatedAt: new Date() })
831
+ .where(eq(schema.shippingZones.id, id))
832
+ .returning();
833
+ return zone || null;
834
+ }
835
+ /**
836
+ * Delete a shipping zone (cascades to rates)
837
+ */
838
+ export async function deleteShippingZone(id) {
839
+ const db = getDb();
840
+ const result = await db
841
+ .delete(schema.shippingZones)
842
+ .where(eq(schema.shippingZones.id, id))
843
+ .returning({ id: schema.shippingZones.id });
844
+ return result.length > 0;
845
+ }
846
+ /**
847
+ * Create a shipping rate for a zone
848
+ */
849
+ export async function createShippingRate(data) {
850
+ const db = getDb();
851
+ const [rate] = await db
852
+ .insert(schema.shippingRates)
853
+ .values({
854
+ zoneId: data.zoneId,
855
+ name: data.name,
856
+ description: data.description || null,
857
+ price: String(data.price),
858
+ minOrderAmount: data.minOrderAmount !== undefined ? String(data.minOrderAmount) : null,
859
+ maxOrderAmount: data.maxOrderAmount !== undefined ? String(data.maxOrderAmount) : null,
860
+ estimatedDays: data.estimatedDays || null,
861
+ isActive: data.isActive ?? true,
862
+ sortOrder: data.sortOrder ?? 0,
863
+ })
864
+ .returning();
865
+ return rate;
866
+ }
867
+ /**
868
+ * Update a shipping rate
869
+ */
870
+ export async function updateShippingRate(id, data) {
871
+ const db = getDb();
872
+ const updateData = {};
873
+ if (data.name !== undefined)
874
+ updateData.name = data.name;
875
+ if (data.description !== undefined)
876
+ updateData.description = data.description;
877
+ if (data.price !== undefined)
878
+ updateData.price = String(data.price);
879
+ if (data.minOrderAmount !== undefined)
880
+ updateData.minOrderAmount = data.minOrderAmount !== null ? String(data.minOrderAmount) : null;
881
+ if (data.maxOrderAmount !== undefined)
882
+ updateData.maxOrderAmount = data.maxOrderAmount !== null ? String(data.maxOrderAmount) : null;
883
+ if (data.estimatedDays !== undefined)
884
+ updateData.estimatedDays = data.estimatedDays;
885
+ if (data.isActive !== undefined)
886
+ updateData.isActive = data.isActive;
887
+ if (data.sortOrder !== undefined)
888
+ updateData.sortOrder = data.sortOrder;
889
+ const [rate] = await db
890
+ .update(schema.shippingRates)
891
+ .set(updateData)
892
+ .where(eq(schema.shippingRates.id, id))
893
+ .returning();
894
+ return rate || null;
895
+ }
896
+ /**
897
+ * Delete a shipping rate
898
+ */
899
+ export async function deleteShippingRate(id) {
900
+ const db = getDb();
901
+ const result = await db
902
+ .delete(schema.shippingRates)
903
+ .where(eq(schema.shippingRates.id, id))
904
+ .returning({ id: schema.shippingRates.id });
905
+ return result.length > 0;
906
+ }
907
+ /**
908
+ * Find shipping rates applicable to a specific country and order amount.
909
+ * Used during checkout to determine which shipping options to show.
910
+ *
911
+ * @param country - ISO country code (e.g., 'US', 'CA')
912
+ * @param orderAmount - Order subtotal in dollars
913
+ * @returns Array of applicable shipping rates
914
+ */
915
+ export async function findShippingRatesForCountry(country, orderAmount) {
916
+ const zones = await findActiveShippingZones();
917
+ const applicableRates = [];
918
+ for (const zone of zones) {
919
+ // Check if zone covers this country
920
+ // '*' means all countries (international catch-all)
921
+ const coversCountry = zone.countries.includes('*') || zone.countries.includes(country.toUpperCase());
922
+ if (!coversCountry)
923
+ continue;
924
+ // Get active rates that match the order amount
925
+ for (const rate of zone.rates) {
926
+ if (!rate.isActive)
927
+ continue;
928
+ // Check min/max order amount constraints
929
+ if (rate.minOrderAmount !== null && orderAmount < rate.minOrderAmount)
930
+ continue;
931
+ if (rate.maxOrderAmount !== null && orderAmount > rate.maxOrderAmount)
932
+ continue;
933
+ applicableRates.push({
934
+ id: rate.id,
935
+ zoneName: zone.name,
936
+ name: rate.name,
937
+ description: rate.description,
938
+ price: rate.price,
939
+ estimatedDays: rate.estimatedDays,
940
+ });
941
+ }
942
+ }
943
+ return applicableRates;
944
+ }
746
945
  //# sourceMappingURL=queries.js.map