@axova/shared 1.0.0 → 1.0.2

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 (33) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -2
  3. package/dist/middleware/storeOwnership.js +3 -22
  4. package/dist/middleware/storeValidationMiddleware.js +39 -16
  5. package/dist/schemas/admin/admin-schema.d.ts +2 -2
  6. package/dist/schemas/ai-moderation/ai-moderation-schema.d.ts +2 -2
  7. package/dist/schemas/index.d.ts +0 -26
  8. package/dist/schemas/index.js +3 -121
  9. package/dist/schemas/store/storefront-config-schema.d.ts +1320 -0
  10. package/dist/schemas/store/storefront-config-schema.js +109 -0
  11. package/dist/utils/subdomain.d.ts +1 -1
  12. package/dist/utils/subdomain.js +15 -10
  13. package/package.json +1 -1
  14. package/src/index.ts +0 -3
  15. package/src/middleware/storeOwnership.ts +3 -21
  16. package/src/middleware/storeValidationMiddleware.ts +50 -17
  17. package/src/schemas/index.ts +5 -189
  18. package/src/utils/subdomain.ts +15 -11
  19. package/nul +0 -8
  20. package/src/schemas/compliance/compliance-schema.ts +0 -927
  21. package/src/schemas/compliance/kyc-schema.ts +0 -649
  22. package/src/schemas/customer/customer-schema.ts +0 -576
  23. package/src/schemas/inventory/inventory-tables.ts +0 -1927
  24. package/src/schemas/inventory/lot-tables.ts +0 -799
  25. package/src/schemas/order/order-schema.ts +0 -1400
  26. package/src/schemas/product/discount-relations.ts +0 -44
  27. package/src/schemas/product/discount-schema.ts +0 -464
  28. package/src/schemas/product/product-relations.ts +0 -187
  29. package/src/schemas/product/product-schema.ts +0 -955
  30. package/src/schemas/store/ethiopian_business_api.md.resolved +0 -212
  31. package/src/schemas/store/store-audit-schema.ts +0 -1257
  32. package/src/schemas/store/store-schema.ts +0 -661
  33. package/src/schemas/store/store-settings-schema.ts +0 -231
@@ -0,0 +1,1320 @@
1
+ export declare const storefrontConfigs: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "storefront_configs";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "storefront_configs";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: true;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: true;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ storeId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "store_id";
24
+ tableName: "storefront_configs";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ setupStatus: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "setup_status";
41
+ tableName: "storefront_configs";
42
+ dataType: "string";
43
+ columnType: "PgVarchar";
44
+ data: "IN_PROGRESS" | "COMPLETED" | "INCOMPLETE" | "NEEDS_REVIEW" | "PUBLISHED";
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: true;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {
56
+ length: 30;
57
+ $type: "IN_PROGRESS" | "COMPLETED" | "INCOMPLETE" | "NEEDS_REVIEW" | "PUBLISHED";
58
+ }>;
59
+ setupProgress: import("drizzle-orm/pg-core").PgColumn<{
60
+ name: "setup_progress";
61
+ tableName: "storefront_configs";
62
+ dataType: "number";
63
+ columnType: "PgInteger";
64
+ data: number;
65
+ driverParam: string | number;
66
+ notNull: true;
67
+ hasDefault: true;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: undefined;
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {}>;
76
+ setupSteps: import("drizzle-orm/pg-core").PgColumn<{
77
+ name: "setup_steps";
78
+ tableName: "storefront_configs";
79
+ dataType: "json";
80
+ columnType: "PgJsonb";
81
+ data: {
82
+ branding?: {
83
+ completed: boolean;
84
+ completedAt?: string;
85
+ };
86
+ layout?: {
87
+ completed: boolean;
88
+ completedAt?: string;
89
+ };
90
+ pages?: {
91
+ completed: boolean;
92
+ completedAt?: string;
93
+ };
94
+ localization?: {
95
+ completed: boolean;
96
+ completedAt?: string;
97
+ };
98
+ theme?: {
99
+ completed: boolean;
100
+ completedAt?: string;
101
+ };
102
+ seo?: {
103
+ completed: boolean;
104
+ completedAt?: string;
105
+ };
106
+ };
107
+ driverParam: unknown;
108
+ notNull: false;
109
+ hasDefault: true;
110
+ isPrimaryKey: false;
111
+ isAutoincrement: false;
112
+ hasRuntimeDefault: false;
113
+ enumValues: undefined;
114
+ baseColumn: never;
115
+ identity: undefined;
116
+ generated: undefined;
117
+ }, {}, {
118
+ $type: {
119
+ branding?: {
120
+ completed: boolean;
121
+ completedAt?: string;
122
+ };
123
+ layout?: {
124
+ completed: boolean;
125
+ completedAt?: string;
126
+ };
127
+ pages?: {
128
+ completed: boolean;
129
+ completedAt?: string;
130
+ };
131
+ localization?: {
132
+ completed: boolean;
133
+ completedAt?: string;
134
+ };
135
+ theme?: {
136
+ completed: boolean;
137
+ completedAt?: string;
138
+ };
139
+ seo?: {
140
+ completed: boolean;
141
+ completedAt?: string;
142
+ };
143
+ };
144
+ }>;
145
+ branding: import("drizzle-orm/pg-core").PgColumn<{
146
+ name: "branding";
147
+ tableName: "storefront_configs";
148
+ dataType: "json";
149
+ columnType: "PgJsonb";
150
+ data: {
151
+ name: string;
152
+ tagline?: string;
153
+ description?: string;
154
+ logo: {
155
+ type: "image" | "text" | "both";
156
+ text?: string;
157
+ image?: string;
158
+ imageWidth?: number;
159
+ imageHeight?: number;
160
+ showText?: boolean;
161
+ alt?: string;
162
+ };
163
+ favicon?: string;
164
+ colors: {
165
+ primary: string;
166
+ secondary: string;
167
+ accent: string;
168
+ background?: string;
169
+ foreground?: string;
170
+ muted?: string;
171
+ mutedForeground?: string;
172
+ border?: string;
173
+ input?: string;
174
+ ring?: string;
175
+ success?: string;
176
+ warning?: string;
177
+ error?: string;
178
+ info?: string;
179
+ };
180
+ typography: {
181
+ headings: {
182
+ family: string;
183
+ weight: string;
184
+ letterSpacing?: string;
185
+ lineHeight?: string;
186
+ };
187
+ body: {
188
+ family: string;
189
+ weight: string;
190
+ letterSpacing?: string;
191
+ lineHeight?: string;
192
+ };
193
+ display?: {
194
+ family: string;
195
+ weight: string;
196
+ letterSpacing?: string;
197
+ lineHeight?: string;
198
+ };
199
+ mono?: {
200
+ family: string;
201
+ weight?: string;
202
+ };
203
+ };
204
+ customCss?: string;
205
+ customFonts?: Array<{
206
+ name: string;
207
+ url: string;
208
+ format?: string;
209
+ }>;
210
+ };
211
+ driverParam: unknown;
212
+ notNull: true;
213
+ hasDefault: false;
214
+ isPrimaryKey: false;
215
+ isAutoincrement: false;
216
+ hasRuntimeDefault: false;
217
+ enumValues: undefined;
218
+ baseColumn: never;
219
+ identity: undefined;
220
+ generated: undefined;
221
+ }, {}, {
222
+ $type: {
223
+ name: string;
224
+ tagline?: string;
225
+ description?: string;
226
+ logo: {
227
+ type: "image" | "text" | "both";
228
+ text?: string;
229
+ image?: string;
230
+ imageWidth?: number;
231
+ imageHeight?: number;
232
+ showText?: boolean;
233
+ alt?: string;
234
+ };
235
+ favicon?: string;
236
+ colors: {
237
+ primary: string;
238
+ secondary: string;
239
+ accent: string;
240
+ background?: string;
241
+ foreground?: string;
242
+ muted?: string;
243
+ mutedForeground?: string;
244
+ border?: string;
245
+ input?: string;
246
+ ring?: string;
247
+ success?: string;
248
+ warning?: string;
249
+ error?: string;
250
+ info?: string;
251
+ };
252
+ typography: {
253
+ headings: {
254
+ family: string;
255
+ weight: string;
256
+ letterSpacing?: string;
257
+ lineHeight?: string;
258
+ };
259
+ body: {
260
+ family: string;
261
+ weight: string;
262
+ letterSpacing?: string;
263
+ lineHeight?: string;
264
+ };
265
+ display?: {
266
+ family: string;
267
+ weight: string;
268
+ letterSpacing?: string;
269
+ lineHeight?: string;
270
+ };
271
+ mono?: {
272
+ family: string;
273
+ weight?: string;
274
+ };
275
+ };
276
+ customCss?: string;
277
+ customFonts?: Array<{
278
+ name: string;
279
+ url: string;
280
+ format?: string;
281
+ }>;
282
+ };
283
+ }>;
284
+ layout: import("drizzle-orm/pg-core").PgColumn<{
285
+ name: "layout";
286
+ tableName: "storefront_configs";
287
+ dataType: "json";
288
+ columnType: "PgJsonb";
289
+ data: {
290
+ header: {
291
+ announcement?: {
292
+ enabled: boolean;
293
+ text: string;
294
+ link?: {
295
+ text: string;
296
+ url: string;
297
+ };
298
+ backgroundColor?: string;
299
+ textColor?: string;
300
+ dismissible?: boolean;
301
+ };
302
+ navigation: {
303
+ mainMenu: Array<{
304
+ id: string;
305
+ label: string;
306
+ url: string;
307
+ icon?: string;
308
+ badge?: string;
309
+ children?: Array<{
310
+ id: string;
311
+ label: string;
312
+ url: string;
313
+ icon?: string;
314
+ }>;
315
+ }>;
316
+ position?: "left" | "center" | "right";
317
+ style?: "default" | "minimal" | "bold";
318
+ sticky?: boolean;
319
+ };
320
+ features: {
321
+ search: boolean;
322
+ cart: boolean;
323
+ wishlist: boolean;
324
+ account: boolean;
325
+ language: boolean;
326
+ currency: boolean;
327
+ compare?: boolean;
328
+ notifications?: boolean;
329
+ };
330
+ style?: {
331
+ transparent?: boolean;
332
+ shadow?: boolean;
333
+ border?: boolean;
334
+ };
335
+ };
336
+ footer: {
337
+ sections: Array<{
338
+ id?: string;
339
+ title: string;
340
+ links: Array<{
341
+ label: string;
342
+ url: string;
343
+ icon?: string;
344
+ external?: boolean;
345
+ }>;
346
+ }>;
347
+ social: Array<{
348
+ platform: string;
349
+ url: string;
350
+ icon?: string;
351
+ }>;
352
+ payment: Array<{
353
+ name: string;
354
+ image: string;
355
+ alt?: string;
356
+ }>;
357
+ newsletter?: {
358
+ enabled: boolean;
359
+ title: string;
360
+ description: string;
361
+ buttonText: string;
362
+ placeholder?: string;
363
+ };
364
+ copyright?: {
365
+ text: string;
366
+ showYear: boolean;
367
+ };
368
+ trust?: {
369
+ badges?: Array<{
370
+ name: string;
371
+ image: string;
372
+ alt?: string;
373
+ }>;
374
+ certifications?: Array<{
375
+ name: string;
376
+ image: string;
377
+ alt?: string;
378
+ }>;
379
+ };
380
+ };
381
+ sidebar?: {
382
+ enabled: boolean;
383
+ position: "left" | "right";
384
+ widgets: Array<{
385
+ id: string;
386
+ type: string;
387
+ title?: string;
388
+ config?: Record<string, any>;
389
+ }>;
390
+ };
391
+ };
392
+ driverParam: unknown;
393
+ notNull: true;
394
+ hasDefault: false;
395
+ isPrimaryKey: false;
396
+ isAutoincrement: false;
397
+ hasRuntimeDefault: false;
398
+ enumValues: undefined;
399
+ baseColumn: never;
400
+ identity: undefined;
401
+ generated: undefined;
402
+ }, {}, {
403
+ $type: {
404
+ header: {
405
+ announcement?: {
406
+ enabled: boolean;
407
+ text: string;
408
+ link?: {
409
+ text: string;
410
+ url: string;
411
+ };
412
+ backgroundColor?: string;
413
+ textColor?: string;
414
+ dismissible?: boolean;
415
+ };
416
+ navigation: {
417
+ mainMenu: Array<{
418
+ id: string;
419
+ label: string;
420
+ url: string;
421
+ icon?: string;
422
+ badge?: string;
423
+ children?: Array<{
424
+ id: string;
425
+ label: string;
426
+ url: string;
427
+ icon?: string;
428
+ }>;
429
+ }>;
430
+ position?: "left" | "center" | "right";
431
+ style?: "default" | "minimal" | "bold";
432
+ sticky?: boolean;
433
+ };
434
+ features: {
435
+ search: boolean;
436
+ cart: boolean;
437
+ wishlist: boolean;
438
+ account: boolean;
439
+ language: boolean;
440
+ currency: boolean;
441
+ compare?: boolean;
442
+ notifications?: boolean;
443
+ };
444
+ style?: {
445
+ transparent?: boolean;
446
+ shadow?: boolean;
447
+ border?: boolean;
448
+ };
449
+ };
450
+ footer: {
451
+ sections: Array<{
452
+ id?: string;
453
+ title: string;
454
+ links: Array<{
455
+ label: string;
456
+ url: string;
457
+ icon?: string;
458
+ external?: boolean;
459
+ }>;
460
+ }>;
461
+ social: Array<{
462
+ platform: string;
463
+ url: string;
464
+ icon?: string;
465
+ }>;
466
+ payment: Array<{
467
+ name: string;
468
+ image: string;
469
+ alt?: string;
470
+ }>;
471
+ newsletter?: {
472
+ enabled: boolean;
473
+ title: string;
474
+ description: string;
475
+ buttonText: string;
476
+ placeholder?: string;
477
+ };
478
+ copyright?: {
479
+ text: string;
480
+ showYear: boolean;
481
+ };
482
+ trust?: {
483
+ badges?: Array<{
484
+ name: string;
485
+ image: string;
486
+ alt?: string;
487
+ }>;
488
+ certifications?: Array<{
489
+ name: string;
490
+ image: string;
491
+ alt?: string;
492
+ }>;
493
+ };
494
+ };
495
+ sidebar?: {
496
+ enabled: boolean;
497
+ position: "left" | "right";
498
+ widgets: Array<{
499
+ id: string;
500
+ type: string;
501
+ title?: string;
502
+ config?: Record<string, any>;
503
+ }>;
504
+ };
505
+ };
506
+ }>;
507
+ pages: import("drizzle-orm/pg-core").PgColumn<{
508
+ name: "pages";
509
+ tableName: "storefront_configs";
510
+ dataType: "json";
511
+ columnType: "PgJsonb";
512
+ data: {
513
+ home: {
514
+ hero: {
515
+ enabled: boolean;
516
+ type?: "banner" | "slider" | "video" | "split" | "minimal" | "fullscreen";
517
+ title: string;
518
+ subtitle?: string;
519
+ badge?: string;
520
+ image?: {
521
+ url: string;
522
+ alt: string;
523
+ position?: string;
524
+ overlay?: boolean;
525
+ };
526
+ video?: {
527
+ url: string;
528
+ thumbnail?: string;
529
+ autoplay?: boolean;
530
+ };
531
+ cta?: Array<{
532
+ text: string;
533
+ url: string;
534
+ variant?: "primary" | "secondary" | "outline" | "ghost";
535
+ icon?: string;
536
+ }>;
537
+ animation?: string;
538
+ };
539
+ features?: {
540
+ enabled: boolean;
541
+ title?: string;
542
+ subtitle?: string;
543
+ layout?: "grid" | "list" | "carousel";
544
+ items: Array<{
545
+ title: string;
546
+ description: string;
547
+ icon: string;
548
+ link?: string;
549
+ }>;
550
+ };
551
+ collections?: {
552
+ enabled: boolean;
553
+ title: string;
554
+ subtitle?: string;
555
+ layout?: "grid" | "masonry" | "carousel";
556
+ items: Array<{
557
+ id?: string;
558
+ title: string;
559
+ description?: string;
560
+ stats?: string;
561
+ image: {
562
+ url: string;
563
+ alt: string;
564
+ };
565
+ link: string;
566
+ }>;
567
+ };
568
+ testimonials?: {
569
+ enabled: boolean;
570
+ title?: string;
571
+ subtitle?: string;
572
+ layout?: "carousel" | "grid" | "masonry";
573
+ items: Array<{
574
+ name: string;
575
+ role?: string;
576
+ avatar?: string;
577
+ rating?: number;
578
+ content: string;
579
+ date?: string;
580
+ }>;
581
+ };
582
+ instagram?: {
583
+ enabled: boolean;
584
+ title: string;
585
+ subtitle?: string;
586
+ username?: string;
587
+ images: Array<{
588
+ url: string;
589
+ alt: string;
590
+ link?: string;
591
+ }>;
592
+ };
593
+ newsletter?: {
594
+ enabled: boolean;
595
+ title: string;
596
+ description?: string;
597
+ placeholder?: string;
598
+ buttonText: string;
599
+ image?: string;
600
+ };
601
+ customSections?: Array<{
602
+ id: string;
603
+ type: string;
604
+ enabled: boolean;
605
+ order: number;
606
+ config: Record<string, any>;
607
+ }>;
608
+ };
609
+ about?: {
610
+ enabled: boolean;
611
+ hero?: {
612
+ title: string;
613
+ subtitle?: string;
614
+ image?: {
615
+ url: string;
616
+ alt: string;
617
+ };
618
+ };
619
+ vision?: {
620
+ title: string;
621
+ content: string;
622
+ };
623
+ mission?: {
624
+ title: string;
625
+ content: string;
626
+ };
627
+ values?: Array<{
628
+ title: string;
629
+ description: string;
630
+ icon?: string;
631
+ }>;
632
+ stats?: Array<{
633
+ value: string;
634
+ label: string;
635
+ description?: string;
636
+ }>;
637
+ team?: {
638
+ enabled: boolean;
639
+ title?: string;
640
+ members: Array<{
641
+ name: string;
642
+ role: string;
643
+ bio?: string;
644
+ avatar?: string;
645
+ social?: Record<string, string>;
646
+ }>;
647
+ };
648
+ };
649
+ collections?: {
650
+ enabled: boolean;
651
+ header?: {
652
+ title: string;
653
+ subtitle?: string;
654
+ };
655
+ items: Array<{
656
+ id: string;
657
+ title: string;
658
+ description: string;
659
+ image: {
660
+ url: string;
661
+ alt: string;
662
+ };
663
+ products?: number;
664
+ link?: string;
665
+ }>;
666
+ };
667
+ contact?: {
668
+ enabled: boolean;
669
+ title?: string;
670
+ subtitle?: string;
671
+ showMap?: boolean;
672
+ mapConfig?: {
673
+ latitude: number;
674
+ longitude: number;
675
+ zoom?: number;
676
+ };
677
+ showForm?: boolean;
678
+ contactInfo?: {
679
+ address?: string;
680
+ phone?: string;
681
+ email?: string;
682
+ hours?: string;
683
+ };
684
+ };
685
+ customPages?: Array<{
686
+ id: string;
687
+ slug: string;
688
+ title: string;
689
+ enabled: boolean;
690
+ layout: string;
691
+ content: any;
692
+ }>;
693
+ };
694
+ driverParam: unknown;
695
+ notNull: true;
696
+ hasDefault: false;
697
+ isPrimaryKey: false;
698
+ isAutoincrement: false;
699
+ hasRuntimeDefault: false;
700
+ enumValues: undefined;
701
+ baseColumn: never;
702
+ identity: undefined;
703
+ generated: undefined;
704
+ }, {}, {
705
+ $type: {
706
+ home: {
707
+ hero: {
708
+ enabled: boolean;
709
+ type?: "banner" | "slider" | "video" | "split" | "minimal" | "fullscreen";
710
+ title: string;
711
+ subtitle?: string;
712
+ badge?: string;
713
+ image?: {
714
+ url: string;
715
+ alt: string;
716
+ position?: string;
717
+ overlay?: boolean;
718
+ };
719
+ video?: {
720
+ url: string;
721
+ thumbnail?: string;
722
+ autoplay?: boolean;
723
+ };
724
+ cta?: Array<{
725
+ text: string;
726
+ url: string;
727
+ variant?: "primary" | "secondary" | "outline" | "ghost";
728
+ icon?: string;
729
+ }>;
730
+ animation?: string;
731
+ };
732
+ features?: {
733
+ enabled: boolean;
734
+ title?: string;
735
+ subtitle?: string;
736
+ layout?: "grid" | "list" | "carousel";
737
+ items: Array<{
738
+ title: string;
739
+ description: string;
740
+ icon: string;
741
+ link?: string;
742
+ }>;
743
+ };
744
+ collections?: {
745
+ enabled: boolean;
746
+ title: string;
747
+ subtitle?: string;
748
+ layout?: "grid" | "masonry" | "carousel";
749
+ items: Array<{
750
+ id?: string;
751
+ title: string;
752
+ description?: string;
753
+ stats?: string;
754
+ image: {
755
+ url: string;
756
+ alt: string;
757
+ };
758
+ link: string;
759
+ }>;
760
+ };
761
+ testimonials?: {
762
+ enabled: boolean;
763
+ title?: string;
764
+ subtitle?: string;
765
+ layout?: "carousel" | "grid" | "masonry";
766
+ items: Array<{
767
+ name: string;
768
+ role?: string;
769
+ avatar?: string;
770
+ rating?: number;
771
+ content: string;
772
+ date?: string;
773
+ }>;
774
+ };
775
+ instagram?: {
776
+ enabled: boolean;
777
+ title: string;
778
+ subtitle?: string;
779
+ username?: string;
780
+ images: Array<{
781
+ url: string;
782
+ alt: string;
783
+ link?: string;
784
+ }>;
785
+ };
786
+ newsletter?: {
787
+ enabled: boolean;
788
+ title: string;
789
+ description?: string;
790
+ placeholder?: string;
791
+ buttonText: string;
792
+ image?: string;
793
+ };
794
+ customSections?: Array<{
795
+ id: string;
796
+ type: string;
797
+ enabled: boolean;
798
+ order: number;
799
+ config: Record<string, any>;
800
+ }>;
801
+ };
802
+ about?: {
803
+ enabled: boolean;
804
+ hero?: {
805
+ title: string;
806
+ subtitle?: string;
807
+ image?: {
808
+ url: string;
809
+ alt: string;
810
+ };
811
+ };
812
+ vision?: {
813
+ title: string;
814
+ content: string;
815
+ };
816
+ mission?: {
817
+ title: string;
818
+ content: string;
819
+ };
820
+ values?: Array<{
821
+ title: string;
822
+ description: string;
823
+ icon?: string;
824
+ }>;
825
+ stats?: Array<{
826
+ value: string;
827
+ label: string;
828
+ description?: string;
829
+ }>;
830
+ team?: {
831
+ enabled: boolean;
832
+ title?: string;
833
+ members: Array<{
834
+ name: string;
835
+ role: string;
836
+ bio?: string;
837
+ avatar?: string;
838
+ social?: Record<string, string>;
839
+ }>;
840
+ };
841
+ };
842
+ collections?: {
843
+ enabled: boolean;
844
+ header?: {
845
+ title: string;
846
+ subtitle?: string;
847
+ };
848
+ items: Array<{
849
+ id: string;
850
+ title: string;
851
+ description: string;
852
+ image: {
853
+ url: string;
854
+ alt: string;
855
+ };
856
+ products?: number;
857
+ link?: string;
858
+ }>;
859
+ };
860
+ contact?: {
861
+ enabled: boolean;
862
+ title?: string;
863
+ subtitle?: string;
864
+ showMap?: boolean;
865
+ mapConfig?: {
866
+ latitude: number;
867
+ longitude: number;
868
+ zoom?: number;
869
+ };
870
+ showForm?: boolean;
871
+ contactInfo?: {
872
+ address?: string;
873
+ phone?: string;
874
+ email?: string;
875
+ hours?: string;
876
+ };
877
+ };
878
+ customPages?: Array<{
879
+ id: string;
880
+ slug: string;
881
+ title: string;
882
+ enabled: boolean;
883
+ layout: string;
884
+ content: any;
885
+ }>;
886
+ };
887
+ }>;
888
+ localization: import("drizzle-orm/pg-core").PgColumn<{
889
+ name: "localization";
890
+ tableName: "storefront_configs";
891
+ dataType: "json";
892
+ columnType: "PgJsonb";
893
+ data: {
894
+ languages: Array<{
895
+ code: string;
896
+ name: string;
897
+ flag: string;
898
+ rtl?: boolean;
899
+ enabled: boolean;
900
+ }>;
901
+ currencies: Array<{
902
+ code: string;
903
+ symbol: string;
904
+ name: string;
905
+ flag?: string;
906
+ position?: "before" | "after";
907
+ decimals?: number;
908
+ enabled: boolean;
909
+ }>;
910
+ defaultLanguage: string;
911
+ defaultCurrency: string;
912
+ autoDetect?: boolean;
913
+ translations?: Record<string, Record<string, string>>;
914
+ };
915
+ driverParam: unknown;
916
+ notNull: true;
917
+ hasDefault: false;
918
+ isPrimaryKey: false;
919
+ isAutoincrement: false;
920
+ hasRuntimeDefault: false;
921
+ enumValues: undefined;
922
+ baseColumn: never;
923
+ identity: undefined;
924
+ generated: undefined;
925
+ }, {}, {
926
+ $type: {
927
+ languages: Array<{
928
+ code: string;
929
+ name: string;
930
+ flag: string;
931
+ rtl?: boolean;
932
+ enabled: boolean;
933
+ }>;
934
+ currencies: Array<{
935
+ code: string;
936
+ symbol: string;
937
+ name: string;
938
+ flag?: string;
939
+ position?: "before" | "after";
940
+ decimals?: number;
941
+ enabled: boolean;
942
+ }>;
943
+ defaultLanguage: string;
944
+ defaultCurrency: string;
945
+ autoDetect?: boolean;
946
+ translations?: Record<string, Record<string, string>>;
947
+ };
948
+ }>;
949
+ theme: import("drizzle-orm/pg-core").PgColumn<{
950
+ name: "theme";
951
+ tableName: "storefront_configs";
952
+ dataType: "json";
953
+ columnType: "PgJsonb";
954
+ data: {
955
+ mode: "light" | "dark" | "auto";
956
+ radius?: number;
957
+ animations?: boolean;
958
+ transitions?: boolean;
959
+ effects?: {
960
+ blur?: boolean;
961
+ shadows?: boolean;
962
+ gradients?: boolean;
963
+ };
964
+ spacing?: {
965
+ scale?: number;
966
+ container?: string;
967
+ };
968
+ customVariables?: Record<string, string>;
969
+ };
970
+ driverParam: unknown;
971
+ notNull: false;
972
+ hasDefault: true;
973
+ isPrimaryKey: false;
974
+ isAutoincrement: false;
975
+ hasRuntimeDefault: false;
976
+ enumValues: undefined;
977
+ baseColumn: never;
978
+ identity: undefined;
979
+ generated: undefined;
980
+ }, {}, {
981
+ $type: {
982
+ mode: "light" | "dark" | "auto";
983
+ radius?: number;
984
+ animations?: boolean;
985
+ transitions?: boolean;
986
+ effects?: {
987
+ blur?: boolean;
988
+ shadows?: boolean;
989
+ gradients?: boolean;
990
+ };
991
+ spacing?: {
992
+ scale?: number;
993
+ container?: string;
994
+ };
995
+ customVariables?: Record<string, string>;
996
+ };
997
+ }>;
998
+ seo: import("drizzle-orm/pg-core").PgColumn<{
999
+ name: "seo";
1000
+ tableName: "storefront_configs";
1001
+ dataType: "json";
1002
+ columnType: "PgJsonb";
1003
+ data: {
1004
+ title?: string;
1005
+ description?: string;
1006
+ keywords?: string[];
1007
+ ogImage?: string;
1008
+ twitterCard?: "summary" | "summary_large_image" | "app" | "player";
1009
+ favicon?: string;
1010
+ appleTouchIcon?: string;
1011
+ robots?: {
1012
+ index: boolean;
1013
+ follow: boolean;
1014
+ noarchive?: boolean;
1015
+ noimageindex?: boolean;
1016
+ };
1017
+ verification?: {
1018
+ google?: string;
1019
+ bing?: string;
1020
+ yandex?: string;
1021
+ pinterest?: string;
1022
+ };
1023
+ structuredData?: Array<Record<string, any>>;
1024
+ };
1025
+ driverParam: unknown;
1026
+ notNull: false;
1027
+ hasDefault: true;
1028
+ isPrimaryKey: false;
1029
+ isAutoincrement: false;
1030
+ hasRuntimeDefault: false;
1031
+ enumValues: undefined;
1032
+ baseColumn: never;
1033
+ identity: undefined;
1034
+ generated: undefined;
1035
+ }, {}, {
1036
+ $type: {
1037
+ title?: string;
1038
+ description?: string;
1039
+ keywords?: string[];
1040
+ ogImage?: string;
1041
+ twitterCard?: "summary" | "summary_large_image" | "app" | "player";
1042
+ favicon?: string;
1043
+ appleTouchIcon?: string;
1044
+ robots?: {
1045
+ index: boolean;
1046
+ follow: boolean;
1047
+ noarchive?: boolean;
1048
+ noimageindex?: boolean;
1049
+ };
1050
+ verification?: {
1051
+ google?: string;
1052
+ bing?: string;
1053
+ yandex?: string;
1054
+ pinterest?: string;
1055
+ };
1056
+ structuredData?: Array<Record<string, any>>;
1057
+ };
1058
+ }>;
1059
+ textLimits: import("drizzle-orm/pg-core").PgColumn<{
1060
+ name: "text_limits";
1061
+ tableName: "storefront_configs";
1062
+ dataType: "json";
1063
+ columnType: "PgJsonb";
1064
+ data: {
1065
+ homeHero?: {
1066
+ badgeTextMax?: number;
1067
+ titleMax?: number;
1068
+ subtitleMax?: number;
1069
+ newsletterPlaceholderMax?: number;
1070
+ newsletterButtonTextMax?: number;
1071
+ trustedByTextMax?: number;
1072
+ };
1073
+ features?: {
1074
+ titleMax?: number;
1075
+ descriptionMax?: number;
1076
+ };
1077
+ collections?: {
1078
+ titleMax?: number;
1079
+ descriptionMax?: number;
1080
+ statsMax?: number;
1081
+ };
1082
+ general?: {
1083
+ menuLabelMax?: number;
1084
+ buttonTextMax?: number;
1085
+ headingMax?: number;
1086
+ paragraphMax?: number;
1087
+ };
1088
+ };
1089
+ driverParam: unknown;
1090
+ notNull: false;
1091
+ hasDefault: true;
1092
+ isPrimaryKey: false;
1093
+ isAutoincrement: false;
1094
+ hasRuntimeDefault: false;
1095
+ enumValues: undefined;
1096
+ baseColumn: never;
1097
+ identity: undefined;
1098
+ generated: undefined;
1099
+ }, {}, {
1100
+ $type: {
1101
+ homeHero?: {
1102
+ badgeTextMax?: number;
1103
+ titleMax?: number;
1104
+ subtitleMax?: number;
1105
+ newsletterPlaceholderMax?: number;
1106
+ newsletterButtonTextMax?: number;
1107
+ trustedByTextMax?: number;
1108
+ };
1109
+ features?: {
1110
+ titleMax?: number;
1111
+ descriptionMax?: number;
1112
+ };
1113
+ collections?: {
1114
+ titleMax?: number;
1115
+ descriptionMax?: number;
1116
+ statsMax?: number;
1117
+ };
1118
+ general?: {
1119
+ menuLabelMax?: number;
1120
+ buttonTextMax?: number;
1121
+ headingMax?: number;
1122
+ paragraphMax?: number;
1123
+ };
1124
+ };
1125
+ }>;
1126
+ features: import("drizzle-orm/pg-core").PgColumn<{
1127
+ name: "features";
1128
+ tableName: "storefront_configs";
1129
+ dataType: "json";
1130
+ columnType: "PgJsonb";
1131
+ data: {
1132
+ enableCookieConsent?: boolean;
1133
+ enableLiveChat?: boolean;
1134
+ enablePWA?: boolean;
1135
+ enableAMP?: boolean;
1136
+ enableAcceleration?: boolean;
1137
+ enableAnalytics?: boolean;
1138
+ enableABTesting?: boolean;
1139
+ enablePersonalization?: boolean;
1140
+ customScripts?: Array<{
1141
+ name: string;
1142
+ location: "head" | "body" | "footer";
1143
+ script: string;
1144
+ async?: boolean;
1145
+ defer?: boolean;
1146
+ }>;
1147
+ integrations?: Record<string, any>;
1148
+ };
1149
+ driverParam: unknown;
1150
+ notNull: false;
1151
+ hasDefault: true;
1152
+ isPrimaryKey: false;
1153
+ isAutoincrement: false;
1154
+ hasRuntimeDefault: false;
1155
+ enumValues: undefined;
1156
+ baseColumn: never;
1157
+ identity: undefined;
1158
+ generated: undefined;
1159
+ }, {}, {
1160
+ $type: {
1161
+ enableCookieConsent?: boolean;
1162
+ enableLiveChat?: boolean;
1163
+ enablePWA?: boolean;
1164
+ enableAMP?: boolean;
1165
+ enableAcceleration?: boolean;
1166
+ enableAnalytics?: boolean;
1167
+ enableABTesting?: boolean;
1168
+ enablePersonalization?: boolean;
1169
+ customScripts?: Array<{
1170
+ name: string;
1171
+ location: "head" | "body" | "footer";
1172
+ script: string;
1173
+ async?: boolean;
1174
+ defer?: boolean;
1175
+ }>;
1176
+ integrations?: Record<string, any>;
1177
+ };
1178
+ }>;
1179
+ version: import("drizzle-orm/pg-core").PgColumn<{
1180
+ name: "version";
1181
+ tableName: "storefront_configs";
1182
+ dataType: "number";
1183
+ columnType: "PgInteger";
1184
+ data: number;
1185
+ driverParam: string | number;
1186
+ notNull: true;
1187
+ hasDefault: true;
1188
+ isPrimaryKey: false;
1189
+ isAutoincrement: false;
1190
+ hasRuntimeDefault: false;
1191
+ enumValues: undefined;
1192
+ baseColumn: never;
1193
+ identity: undefined;
1194
+ generated: undefined;
1195
+ }, {}, {}>;
1196
+ publishedVersion: import("drizzle-orm/pg-core").PgColumn<{
1197
+ name: "published_version";
1198
+ tableName: "storefront_configs";
1199
+ dataType: "number";
1200
+ columnType: "PgInteger";
1201
+ data: number;
1202
+ driverParam: string | number;
1203
+ notNull: false;
1204
+ hasDefault: false;
1205
+ isPrimaryKey: false;
1206
+ isAutoincrement: false;
1207
+ hasRuntimeDefault: false;
1208
+ enumValues: undefined;
1209
+ baseColumn: never;
1210
+ identity: undefined;
1211
+ generated: undefined;
1212
+ }, {}, {}>;
1213
+ isDraft: import("drizzle-orm/pg-core").PgColumn<{
1214
+ name: "is_draft";
1215
+ tableName: "storefront_configs";
1216
+ dataType: "boolean";
1217
+ columnType: "PgBoolean";
1218
+ data: boolean;
1219
+ driverParam: boolean;
1220
+ notNull: true;
1221
+ hasDefault: true;
1222
+ isPrimaryKey: false;
1223
+ isAutoincrement: false;
1224
+ hasRuntimeDefault: false;
1225
+ enumValues: undefined;
1226
+ baseColumn: never;
1227
+ identity: undefined;
1228
+ generated: undefined;
1229
+ }, {}, {}>;
1230
+ lastEditedBy: import("drizzle-orm/pg-core").PgColumn<{
1231
+ name: "last_edited_by";
1232
+ tableName: "storefront_configs";
1233
+ dataType: "string";
1234
+ columnType: "PgText";
1235
+ data: string;
1236
+ driverParam: string;
1237
+ notNull: false;
1238
+ hasDefault: false;
1239
+ isPrimaryKey: false;
1240
+ isAutoincrement: false;
1241
+ hasRuntimeDefault: false;
1242
+ enumValues: [string, ...string[]];
1243
+ baseColumn: never;
1244
+ identity: undefined;
1245
+ generated: undefined;
1246
+ }, {}, {}>;
1247
+ publishedAt: import("drizzle-orm/pg-core").PgColumn<{
1248
+ name: "published_at";
1249
+ tableName: "storefront_configs";
1250
+ dataType: "date";
1251
+ columnType: "PgTimestamp";
1252
+ data: Date;
1253
+ driverParam: string;
1254
+ notNull: false;
1255
+ hasDefault: false;
1256
+ isPrimaryKey: false;
1257
+ isAutoincrement: false;
1258
+ hasRuntimeDefault: false;
1259
+ enumValues: undefined;
1260
+ baseColumn: never;
1261
+ identity: undefined;
1262
+ generated: undefined;
1263
+ }, {}, {}>;
1264
+ publishedBy: import("drizzle-orm/pg-core").PgColumn<{
1265
+ name: "published_by";
1266
+ tableName: "storefront_configs";
1267
+ dataType: "string";
1268
+ columnType: "PgText";
1269
+ data: string;
1270
+ driverParam: string;
1271
+ notNull: false;
1272
+ hasDefault: false;
1273
+ isPrimaryKey: false;
1274
+ isAutoincrement: false;
1275
+ hasRuntimeDefault: false;
1276
+ enumValues: [string, ...string[]];
1277
+ baseColumn: never;
1278
+ identity: undefined;
1279
+ generated: undefined;
1280
+ }, {}, {}>;
1281
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1282
+ name: "created_at";
1283
+ tableName: "storefront_configs";
1284
+ dataType: "date";
1285
+ columnType: "PgTimestamp";
1286
+ data: Date;
1287
+ driverParam: string;
1288
+ notNull: true;
1289
+ hasDefault: true;
1290
+ isPrimaryKey: false;
1291
+ isAutoincrement: false;
1292
+ hasRuntimeDefault: false;
1293
+ enumValues: undefined;
1294
+ baseColumn: never;
1295
+ identity: undefined;
1296
+ generated: undefined;
1297
+ }, {}, {}>;
1298
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1299
+ name: "updated_at";
1300
+ tableName: "storefront_configs";
1301
+ dataType: "date";
1302
+ columnType: "PgTimestamp";
1303
+ data: Date;
1304
+ driverParam: string;
1305
+ notNull: true;
1306
+ hasDefault: true;
1307
+ isPrimaryKey: false;
1308
+ isAutoincrement: false;
1309
+ hasRuntimeDefault: false;
1310
+ enumValues: undefined;
1311
+ baseColumn: never;
1312
+ identity: undefined;
1313
+ generated: undefined;
1314
+ }, {}, {}>;
1315
+ };
1316
+ dialect: "pg";
1317
+ }>;
1318
+ export declare const storefrontConfigRelations: import("drizzle-orm").Relations<"storefront_configs", {
1319
+ store: import("drizzle-orm").One<"stores", true>;
1320
+ }>;