@voyantjs/products 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/index.d.ts +9 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +10 -1
  4. package/dist/routes-public.d.ts +492 -0
  5. package/dist/routes-public.d.ts.map +1 -0
  6. package/dist/routes-public.js +44 -0
  7. package/dist/routes.d.ts +669 -0
  8. package/dist/routes.d.ts.map +1 -1
  9. package/dist/routes.js +117 -1
  10. package/dist/schema-itinerary.d.ts +51 -0
  11. package/dist/schema-itinerary.d.ts.map +1 -1
  12. package/dist/schema-itinerary.js +3 -0
  13. package/dist/schema-relations.d.ts +14 -0
  14. package/dist/schema-relations.d.ts.map +1 -1
  15. package/dist/schema-relations.js +28 -1
  16. package/dist/schema-taxonomy.d.ts +435 -0
  17. package/dist/schema-taxonomy.d.ts.map +1 -1
  18. package/dist/schema-taxonomy.js +47 -0
  19. package/dist/service-catalog.d.ts +237 -0
  20. package/dist/service-catalog.d.ts.map +1 -0
  21. package/dist/service-catalog.js +478 -0
  22. package/dist/service-public.d.ts +383 -0
  23. package/dist/service-public.d.ts.map +1 -0
  24. package/dist/service-public.js +365 -0
  25. package/dist/service.d.ts +292 -1
  26. package/dist/service.d.ts.map +1 -1
  27. package/dist/service.js +388 -2
  28. package/dist/tasks/brochure-printers.d.ts +29 -0
  29. package/dist/tasks/brochure-printers.d.ts.map +1 -0
  30. package/dist/tasks/brochure-printers.js +94 -0
  31. package/dist/tasks/brochure-templates.d.ts +36 -0
  32. package/dist/tasks/brochure-templates.d.ts.map +1 -0
  33. package/dist/tasks/brochure-templates.js +98 -0
  34. package/dist/tasks/brochures.d.ts +42 -0
  35. package/dist/tasks/brochures.d.ts.map +1 -0
  36. package/dist/tasks/brochures.js +69 -0
  37. package/dist/tasks/index.d.ts +3 -0
  38. package/dist/tasks/index.d.ts.map +1 -1
  39. package/dist/tasks/index.js +3 -0
  40. package/dist/validation-catalog.d.ts +388 -0
  41. package/dist/validation-catalog.d.ts.map +1 -0
  42. package/dist/validation-catalog.js +54 -0
  43. package/dist/validation-content.d.ts +109 -0
  44. package/dist/validation-content.d.ts.map +1 -1
  45. package/dist/validation-content.js +63 -1
  46. package/dist/validation-public.d.ts +643 -0
  47. package/dist/validation-public.d.ts.map +1 -0
  48. package/dist/validation-public.js +167 -0
  49. package/dist/validation-shared.d.ts +11 -0
  50. package/dist/validation-shared.d.ts.map +1 -1
  51. package/dist/validation-shared.js +2 -0
  52. package/dist/validation.d.ts +1 -0
  53. package/dist/validation.d.ts.map +1 -1
  54. package/dist/validation.js +1 -0
  55. package/package.json +14 -4
@@ -420,6 +420,349 @@ export declare const productTags: import("drizzle-orm/pg-core").PgTableWithColum
420
420
  }>;
421
421
  export type ProductTag = typeof productTags.$inferSelect;
422
422
  export type NewProductTag = typeof productTags.$inferInsert;
423
+ export declare const destinations: import("drizzle-orm/pg-core").PgTableWithColumns<{
424
+ name: "destinations";
425
+ schema: undefined;
426
+ columns: {
427
+ id: import("drizzle-orm/pg-core").PgColumn<{
428
+ name: string;
429
+ tableName: "destinations";
430
+ dataType: "string";
431
+ columnType: "PgText";
432
+ data: string;
433
+ driverParam: string;
434
+ notNull: true;
435
+ hasDefault: true;
436
+ isPrimaryKey: true;
437
+ isAutoincrement: false;
438
+ hasRuntimeDefault: true;
439
+ enumValues: [string, ...string[]];
440
+ baseColumn: never;
441
+ identity: undefined;
442
+ generated: undefined;
443
+ }, {}, {}>;
444
+ parentId: import("drizzle-orm/pg-core").PgColumn<{
445
+ name: string;
446
+ tableName: "destinations";
447
+ dataType: "string";
448
+ columnType: "PgText";
449
+ data: string;
450
+ driverParam: string;
451
+ notNull: false;
452
+ hasDefault: false;
453
+ isPrimaryKey: false;
454
+ isAutoincrement: false;
455
+ hasRuntimeDefault: false;
456
+ enumValues: [string, ...string[]];
457
+ baseColumn: never;
458
+ identity: undefined;
459
+ generated: undefined;
460
+ }, {}, {}>;
461
+ slug: import("drizzle-orm/pg-core").PgColumn<{
462
+ name: "slug";
463
+ tableName: "destinations";
464
+ dataType: "string";
465
+ columnType: "PgText";
466
+ data: string;
467
+ driverParam: string;
468
+ notNull: true;
469
+ hasDefault: false;
470
+ isPrimaryKey: false;
471
+ isAutoincrement: false;
472
+ hasRuntimeDefault: false;
473
+ enumValues: [string, ...string[]];
474
+ baseColumn: never;
475
+ identity: undefined;
476
+ generated: undefined;
477
+ }, {}, {}>;
478
+ code: import("drizzle-orm/pg-core").PgColumn<{
479
+ name: "code";
480
+ tableName: "destinations";
481
+ dataType: "string";
482
+ columnType: "PgText";
483
+ data: string;
484
+ driverParam: string;
485
+ notNull: false;
486
+ hasDefault: false;
487
+ isPrimaryKey: false;
488
+ isAutoincrement: false;
489
+ hasRuntimeDefault: false;
490
+ enumValues: [string, ...string[]];
491
+ baseColumn: never;
492
+ identity: undefined;
493
+ generated: undefined;
494
+ }, {}, {}>;
495
+ destinationType: import("drizzle-orm/pg-core").PgColumn<{
496
+ name: "destination_type";
497
+ tableName: "destinations";
498
+ dataType: "string";
499
+ columnType: "PgText";
500
+ data: string;
501
+ driverParam: string;
502
+ notNull: true;
503
+ hasDefault: true;
504
+ isPrimaryKey: false;
505
+ isAutoincrement: false;
506
+ hasRuntimeDefault: false;
507
+ enumValues: [string, ...string[]];
508
+ baseColumn: never;
509
+ identity: undefined;
510
+ generated: undefined;
511
+ }, {}, {}>;
512
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
513
+ name: "sort_order";
514
+ tableName: "destinations";
515
+ dataType: "number";
516
+ columnType: "PgInteger";
517
+ data: number;
518
+ driverParam: string | number;
519
+ notNull: true;
520
+ hasDefault: true;
521
+ isPrimaryKey: false;
522
+ isAutoincrement: false;
523
+ hasRuntimeDefault: false;
524
+ enumValues: undefined;
525
+ baseColumn: never;
526
+ identity: undefined;
527
+ generated: undefined;
528
+ }, {}, {}>;
529
+ active: import("drizzle-orm/pg-core").PgColumn<{
530
+ name: "active";
531
+ tableName: "destinations";
532
+ dataType: "boolean";
533
+ columnType: "PgBoolean";
534
+ data: boolean;
535
+ driverParam: boolean;
536
+ notNull: true;
537
+ hasDefault: true;
538
+ isPrimaryKey: false;
539
+ isAutoincrement: false;
540
+ hasRuntimeDefault: false;
541
+ enumValues: undefined;
542
+ baseColumn: never;
543
+ identity: undefined;
544
+ generated: undefined;
545
+ }, {}, {}>;
546
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
547
+ name: "metadata";
548
+ tableName: "destinations";
549
+ dataType: "json";
550
+ columnType: "PgJsonb";
551
+ data: Record<string, unknown>;
552
+ driverParam: unknown;
553
+ notNull: false;
554
+ hasDefault: false;
555
+ isPrimaryKey: false;
556
+ isAutoincrement: false;
557
+ hasRuntimeDefault: false;
558
+ enumValues: undefined;
559
+ baseColumn: never;
560
+ identity: undefined;
561
+ generated: undefined;
562
+ }, {}, {
563
+ $type: Record<string, unknown>;
564
+ }>;
565
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
566
+ name: "created_at";
567
+ tableName: "destinations";
568
+ dataType: "date";
569
+ columnType: "PgTimestamp";
570
+ data: Date;
571
+ driverParam: string;
572
+ notNull: true;
573
+ hasDefault: true;
574
+ isPrimaryKey: false;
575
+ isAutoincrement: false;
576
+ hasRuntimeDefault: false;
577
+ enumValues: undefined;
578
+ baseColumn: never;
579
+ identity: undefined;
580
+ generated: undefined;
581
+ }, {}, {}>;
582
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
583
+ name: "updated_at";
584
+ tableName: "destinations";
585
+ dataType: "date";
586
+ columnType: "PgTimestamp";
587
+ data: Date;
588
+ driverParam: string;
589
+ notNull: true;
590
+ hasDefault: true;
591
+ isPrimaryKey: false;
592
+ isAutoincrement: false;
593
+ hasRuntimeDefault: false;
594
+ enumValues: undefined;
595
+ baseColumn: never;
596
+ identity: undefined;
597
+ generated: undefined;
598
+ }, {}, {}>;
599
+ };
600
+ dialect: "pg";
601
+ }>;
602
+ export type Destination = typeof destinations.$inferSelect;
603
+ export type NewDestination = typeof destinations.$inferInsert;
604
+ export declare const destinationTranslations: import("drizzle-orm/pg-core").PgTableWithColumns<{
605
+ name: "destination_translations";
606
+ schema: undefined;
607
+ columns: {
608
+ id: import("drizzle-orm/pg-core").PgColumn<{
609
+ name: string;
610
+ tableName: "destination_translations";
611
+ dataType: "string";
612
+ columnType: "PgText";
613
+ data: string;
614
+ driverParam: string;
615
+ notNull: true;
616
+ hasDefault: true;
617
+ isPrimaryKey: true;
618
+ isAutoincrement: false;
619
+ hasRuntimeDefault: true;
620
+ enumValues: [string, ...string[]];
621
+ baseColumn: never;
622
+ identity: undefined;
623
+ generated: undefined;
624
+ }, {}, {}>;
625
+ destinationId: import("drizzle-orm/pg-core").PgColumn<{
626
+ name: string;
627
+ tableName: "destination_translations";
628
+ dataType: "string";
629
+ columnType: "PgText";
630
+ data: string;
631
+ driverParam: string;
632
+ notNull: true;
633
+ hasDefault: false;
634
+ isPrimaryKey: false;
635
+ isAutoincrement: false;
636
+ hasRuntimeDefault: false;
637
+ enumValues: [string, ...string[]];
638
+ baseColumn: never;
639
+ identity: undefined;
640
+ generated: undefined;
641
+ }, {}, {}>;
642
+ languageTag: import("drizzle-orm/pg-core").PgColumn<{
643
+ name: "language_tag";
644
+ tableName: "destination_translations";
645
+ dataType: "string";
646
+ columnType: "PgText";
647
+ data: string;
648
+ driverParam: string;
649
+ notNull: true;
650
+ hasDefault: false;
651
+ isPrimaryKey: false;
652
+ isAutoincrement: false;
653
+ hasRuntimeDefault: false;
654
+ enumValues: [string, ...string[]];
655
+ baseColumn: never;
656
+ identity: undefined;
657
+ generated: undefined;
658
+ }, {}, {}>;
659
+ name: import("drizzle-orm/pg-core").PgColumn<{
660
+ name: "name";
661
+ tableName: "destination_translations";
662
+ dataType: "string";
663
+ columnType: "PgText";
664
+ data: string;
665
+ driverParam: string;
666
+ notNull: true;
667
+ hasDefault: false;
668
+ isPrimaryKey: false;
669
+ isAutoincrement: false;
670
+ hasRuntimeDefault: false;
671
+ enumValues: [string, ...string[]];
672
+ baseColumn: never;
673
+ identity: undefined;
674
+ generated: undefined;
675
+ }, {}, {}>;
676
+ description: import("drizzle-orm/pg-core").PgColumn<{
677
+ name: "description";
678
+ tableName: "destination_translations";
679
+ dataType: "string";
680
+ columnType: "PgText";
681
+ data: string;
682
+ driverParam: string;
683
+ notNull: false;
684
+ hasDefault: false;
685
+ isPrimaryKey: false;
686
+ isAutoincrement: false;
687
+ hasRuntimeDefault: false;
688
+ enumValues: [string, ...string[]];
689
+ baseColumn: never;
690
+ identity: undefined;
691
+ generated: undefined;
692
+ }, {}, {}>;
693
+ seoTitle: import("drizzle-orm/pg-core").PgColumn<{
694
+ name: "seo_title";
695
+ tableName: "destination_translations";
696
+ dataType: "string";
697
+ columnType: "PgText";
698
+ data: string;
699
+ driverParam: string;
700
+ notNull: false;
701
+ hasDefault: false;
702
+ isPrimaryKey: false;
703
+ isAutoincrement: false;
704
+ hasRuntimeDefault: false;
705
+ enumValues: [string, ...string[]];
706
+ baseColumn: never;
707
+ identity: undefined;
708
+ generated: undefined;
709
+ }, {}, {}>;
710
+ seoDescription: import("drizzle-orm/pg-core").PgColumn<{
711
+ name: "seo_description";
712
+ tableName: "destination_translations";
713
+ dataType: "string";
714
+ columnType: "PgText";
715
+ data: string;
716
+ driverParam: string;
717
+ notNull: false;
718
+ hasDefault: false;
719
+ isPrimaryKey: false;
720
+ isAutoincrement: false;
721
+ hasRuntimeDefault: false;
722
+ enumValues: [string, ...string[]];
723
+ baseColumn: never;
724
+ identity: undefined;
725
+ generated: undefined;
726
+ }, {}, {}>;
727
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
728
+ name: "created_at";
729
+ tableName: "destination_translations";
730
+ dataType: "date";
731
+ columnType: "PgTimestamp";
732
+ data: Date;
733
+ driverParam: string;
734
+ notNull: true;
735
+ hasDefault: true;
736
+ isPrimaryKey: false;
737
+ isAutoincrement: false;
738
+ hasRuntimeDefault: false;
739
+ enumValues: undefined;
740
+ baseColumn: never;
741
+ identity: undefined;
742
+ generated: undefined;
743
+ }, {}, {}>;
744
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
745
+ name: "updated_at";
746
+ tableName: "destination_translations";
747
+ dataType: "date";
748
+ columnType: "PgTimestamp";
749
+ data: Date;
750
+ driverParam: string;
751
+ notNull: true;
752
+ hasDefault: true;
753
+ isPrimaryKey: false;
754
+ isAutoincrement: false;
755
+ hasRuntimeDefault: false;
756
+ enumValues: undefined;
757
+ baseColumn: never;
758
+ identity: undefined;
759
+ generated: undefined;
760
+ }, {}, {}>;
761
+ };
762
+ dialect: "pg";
763
+ }>;
764
+ export type DestinationTranslation = typeof destinationTranslations.$inferSelect;
765
+ export type NewDestinationTranslation = typeof destinationTranslations.$inferInsert;
423
766
  export declare const productCategoryProducts: import("drizzle-orm/pg-core").PgTableWithColumns<{
424
767
  name: "product_category_products";
425
768
  schema: undefined;
@@ -570,4 +913,96 @@ export declare const productTagProducts: import("drizzle-orm/pg-core").PgTableWi
570
913
  };
571
914
  dialect: "pg";
572
915
  }>;
916
+ export declare const productDestinations: import("drizzle-orm/pg-core").PgTableWithColumns<{
917
+ name: "product_destinations";
918
+ schema: undefined;
919
+ columns: {
920
+ productId: import("drizzle-orm/pg-core").PgColumn<{
921
+ name: string;
922
+ tableName: "product_destinations";
923
+ dataType: "string";
924
+ columnType: "PgText";
925
+ data: string;
926
+ driverParam: string;
927
+ notNull: true;
928
+ hasDefault: false;
929
+ isPrimaryKey: false;
930
+ isAutoincrement: false;
931
+ hasRuntimeDefault: false;
932
+ enumValues: [string, ...string[]];
933
+ baseColumn: never;
934
+ identity: undefined;
935
+ generated: undefined;
936
+ }, {}, {}>;
937
+ destinationId: import("drizzle-orm/pg-core").PgColumn<{
938
+ name: string;
939
+ tableName: "product_destinations";
940
+ dataType: "string";
941
+ columnType: "PgText";
942
+ data: string;
943
+ driverParam: string;
944
+ notNull: true;
945
+ hasDefault: false;
946
+ isPrimaryKey: false;
947
+ isAutoincrement: false;
948
+ hasRuntimeDefault: false;
949
+ enumValues: [string, ...string[]];
950
+ baseColumn: never;
951
+ identity: undefined;
952
+ generated: undefined;
953
+ }, {}, {}>;
954
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
955
+ name: "sort_order";
956
+ tableName: "product_destinations";
957
+ dataType: "number";
958
+ columnType: "PgInteger";
959
+ data: number;
960
+ driverParam: string | number;
961
+ notNull: true;
962
+ hasDefault: true;
963
+ isPrimaryKey: false;
964
+ isAutoincrement: false;
965
+ hasRuntimeDefault: false;
966
+ enumValues: undefined;
967
+ baseColumn: never;
968
+ identity: undefined;
969
+ generated: undefined;
970
+ }, {}, {}>;
971
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
972
+ name: "created_at";
973
+ tableName: "product_destinations";
974
+ dataType: "date";
975
+ columnType: "PgTimestamp";
976
+ data: Date;
977
+ driverParam: string;
978
+ notNull: true;
979
+ hasDefault: true;
980
+ isPrimaryKey: false;
981
+ isAutoincrement: false;
982
+ hasRuntimeDefault: false;
983
+ enumValues: undefined;
984
+ baseColumn: never;
985
+ identity: undefined;
986
+ generated: undefined;
987
+ }, {}, {}>;
988
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
989
+ name: "updated_at";
990
+ tableName: "product_destinations";
991
+ dataType: "date";
992
+ columnType: "PgTimestamp";
993
+ data: Date;
994
+ driverParam: string;
995
+ notNull: true;
996
+ hasDefault: true;
997
+ isPrimaryKey: false;
998
+ isAutoincrement: false;
999
+ hasRuntimeDefault: false;
1000
+ enumValues: undefined;
1001
+ baseColumn: never;
1002
+ identity: undefined;
1003
+ generated: undefined;
1004
+ }, {}, {}>;
1005
+ };
1006
+ dialect: "pg";
1007
+ }>;
573
1008
  //# sourceMappingURL=schema-taxonomy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-taxonomy.d.ts","sourceRoot":"","sources":["../src/schema-taxonomy.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB7B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AAEtE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AAE3D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBnC,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAA"}
1
+ {"version":3,"file":"schema-taxonomy.d.ts","sourceRoot":"","sources":["../src/schema-taxonomy.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB7B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AAEtE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,WAAW,CAAC,YAAY,CAAA;AAE3D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBxB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAE7D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBnC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,uBAAuB,CAAC,YAAY,CAAA;AAChF,MAAM,MAAM,yBAAyB,GAAG,OAAO,uBAAuB,CAAC,YAAY,CAAA;AAEnF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBnC,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB/B,CAAA"}
@@ -37,6 +37,39 @@ export const productTags = pgTable("product_tags", {
37
37
  createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
38
38
  updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
39
39
  }, (table) => [uniqueIndex("uidx_product_tags_name").on(table.name)]);
40
+ export const destinations = pgTable("destinations", {
41
+ id: typeId("destinations"),
42
+ parentId: typeIdRef("parent_id"),
43
+ slug: text("slug").notNull(),
44
+ code: text("code"),
45
+ destinationType: text("destination_type").notNull().default("destination"),
46
+ sortOrder: integer("sort_order").notNull().default(0),
47
+ active: boolean("active").notNull().default(true),
48
+ metadata: jsonb("metadata").$type(),
49
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
50
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
51
+ }, (table) => [
52
+ uniqueIndex("uidx_destinations_slug").on(table.slug),
53
+ uniqueIndex("uidx_destinations_code").on(table.code),
54
+ index("idx_destinations_parent").on(table.parentId),
55
+ index("idx_destinations_active").on(table.active),
56
+ ]);
57
+ export const destinationTranslations = pgTable("destination_translations", {
58
+ id: typeId("destination_translations"),
59
+ destinationId: typeIdRef("destination_id")
60
+ .notNull()
61
+ .references(() => destinations.id, { onDelete: "cascade" }),
62
+ languageTag: text("language_tag").notNull(),
63
+ name: text("name").notNull(),
64
+ description: text("description"),
65
+ seoTitle: text("seo_title"),
66
+ seoDescription: text("seo_description"),
67
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
68
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
69
+ }, (table) => [
70
+ uniqueIndex("uidx_destination_translations_locale").on(table.destinationId, table.languageTag),
71
+ index("idx_destination_translations_language").on(table.languageTag),
72
+ ]);
40
73
  export const productCategoryProducts = pgTable("product_category_products", {
41
74
  productId: typeIdRef("product_id")
42
75
  .notNull()
@@ -63,3 +96,17 @@ export const productTagProducts = pgTable("product_tag_products", {
63
96
  primaryKey({ columns: [table.productId, table.tagId] }),
64
97
  index("idx_ptp_tag").on(table.tagId),
65
98
  ]);
99
+ export const productDestinations = pgTable("product_destinations", {
100
+ productId: typeIdRef("product_id")
101
+ .notNull()
102
+ .references(() => products.id, { onDelete: "cascade" }),
103
+ destinationId: typeIdRef("destination_id")
104
+ .notNull()
105
+ .references(() => destinations.id, { onDelete: "cascade" }),
106
+ sortOrder: integer("sort_order").notNull().default(0),
107
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
108
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
109
+ }, (table) => [
110
+ primaryKey({ columns: [table.productId, table.destinationId] }),
111
+ index("idx_product_destinations_destination").on(table.destinationId),
112
+ ]);