@mac777/project-pinecone-schema 1.0.7 → 1.0.8

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.
@@ -1456,6 +1456,10 @@ export declare const protectedEventSchema: z.ZodObject<{
1456
1456
  export declare const pendingApprovalEditSchema: z.ZodObject<{
1457
1457
  eventId: z.ZodString;
1458
1458
  hostId: z.ZodString;
1459
+ description: z.ZodOptional<z.ZodString>;
1460
+ tagline: z.ZodOptional<z.ZodString>;
1461
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1462
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1459
1463
  media: z.ZodObject<{
1460
1464
  coverImage: z.ZodObject<{
1461
1465
  alt: z.ZodString;
@@ -1506,94 +1510,31 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
1506
1510
  url: string;
1507
1511
  }[] | undefined;
1508
1512
  }>;
1509
- description: z.ZodString;
1513
+ additionalDocuments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1514
+ type: z.ZodOptional<z.ZodEnum<["venue_booking", "permit", "insurance", "license", "portfolio", "other"]>>;
1515
+ url: z.ZodOptional<z.ZodString>;
1516
+ filename: z.ZodString;
1517
+ objectKey: z.ZodString;
1518
+ }, "strip", z.ZodTypeAny, {
1519
+ filename: string;
1520
+ objectKey: string;
1521
+ type?: "other" | "venue_booking" | "permit" | "insurance" | "license" | "portfolio" | undefined;
1522
+ url?: string | undefined;
1523
+ }, {
1524
+ filename: string;
1525
+ objectKey: string;
1526
+ type?: "other" | "venue_booking" | "permit" | "insurance" | "license" | "portfolio" | undefined;
1527
+ url?: string | undefined;
1528
+ }>, "many">>;
1510
1529
  tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
1511
- _id: z.ZodOptional<z.ZodString>;
1512
- name: z.ZodString;
1513
- price: z.ZodObject<{
1514
- amount: z.ZodNumber;
1515
- currency: z.ZodDefault<z.ZodString>;
1516
- }, "strip", z.ZodTypeAny, {
1517
- amount: number;
1518
- currency: string;
1519
- }, {
1520
- amount: number;
1521
- currency?: string | undefined;
1522
- }>;
1523
- quantity: z.ZodNumber;
1524
- limits: z.ZodOptional<z.ZodObject<{
1525
- minPerOrder: z.ZodDefault<z.ZodNumber>;
1526
- maxPerOrder: z.ZodDefault<z.ZodNumber>;
1527
- }, "strip", z.ZodTypeAny, {
1528
- minPerOrder: number;
1529
- maxPerOrder: number;
1530
- }, {
1531
- minPerOrder?: number | undefined;
1532
- maxPerOrder?: number | undefined;
1533
- }>>;
1534
- sold: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1535
- reserved: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1536
- wristbandColor: z.ZodOptional<z.ZodString>;
1537
- isVisible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1538
- isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1530
+ _id: z.ZodString;
1539
1531
  benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1540
- tier: z.ZodDefault<z.ZodString>;
1541
- salesWindow: z.ZodOptional<z.ZodObject<{
1542
- startDate: z.ZodOptional<z.ZodString>;
1543
- endDate: z.ZodOptional<z.ZodString>;
1544
- }, "strip", z.ZodTypeAny, {
1545
- startDate?: string | undefined;
1546
- endDate?: string | undefined;
1547
- }, {
1548
- startDate?: string | undefined;
1549
- endDate?: string | undefined;
1550
- }>>;
1551
1532
  }, "strip", z.ZodTypeAny, {
1552
- name: string;
1553
- price: {
1554
- amount: number;
1555
- currency: string;
1556
- };
1557
- quantity: number;
1558
- tier: string;
1559
- _id?: string | undefined;
1560
- limits?: {
1561
- minPerOrder: number;
1562
- maxPerOrder: number;
1563
- } | undefined;
1564
- sold?: number | undefined;
1565
- reserved?: number | undefined;
1566
- wristbandColor?: string | undefined;
1567
- isVisible?: boolean | undefined;
1568
- isActive?: boolean | undefined;
1533
+ _id: string;
1569
1534
  benefits?: string[] | undefined;
1570
- salesWindow?: {
1571
- startDate?: string | undefined;
1572
- endDate?: string | undefined;
1573
- } | undefined;
1574
1535
  }, {
1575
- name: string;
1576
- price: {
1577
- amount: number;
1578
- currency?: string | undefined;
1579
- };
1580
- quantity: number;
1581
- _id?: string | undefined;
1582
- limits?: {
1583
- minPerOrder?: number | undefined;
1584
- maxPerOrder?: number | undefined;
1585
- } | undefined;
1586
- sold?: number | undefined;
1587
- reserved?: number | undefined;
1588
- wristbandColor?: string | undefined;
1589
- isVisible?: boolean | undefined;
1590
- isActive?: boolean | undefined;
1536
+ _id: string;
1591
1537
  benefits?: string[] | undefined;
1592
- tier?: string | undefined;
1593
- salesWindow?: {
1594
- startDate?: string | undefined;
1595
- endDate?: string | undefined;
1596
- } | undefined;
1597
1538
  }>, "many">>;
1598
1539
  }, "strip", z.ZodTypeAny, {
1599
1540
  media: {
@@ -1608,32 +1549,21 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
1608
1549
  url: string;
1609
1550
  }[] | undefined;
1610
1551
  };
1611
- description: string;
1612
1552
  eventId: string;
1613
1553
  hostId: string;
1554
+ tagline?: string | undefined;
1555
+ description?: string | undefined;
1556
+ highlights?: string[] | undefined;
1614
1557
  tickets?: {
1615
- name: string;
1616
- price: {
1617
- amount: number;
1618
- currency: string;
1619
- };
1620
- quantity: number;
1621
- tier: string;
1622
- _id?: string | undefined;
1623
- limits?: {
1624
- minPerOrder: number;
1625
- maxPerOrder: number;
1626
- } | undefined;
1627
- sold?: number | undefined;
1628
- reserved?: number | undefined;
1629
- wristbandColor?: string | undefined;
1630
- isVisible?: boolean | undefined;
1631
- isActive?: boolean | undefined;
1558
+ _id: string;
1632
1559
  benefits?: string[] | undefined;
1633
- salesWindow?: {
1634
- startDate?: string | undefined;
1635
- endDate?: string | undefined;
1636
- } | undefined;
1560
+ }[] | undefined;
1561
+ languages?: string[] | undefined;
1562
+ additionalDocuments?: {
1563
+ filename: string;
1564
+ objectKey: string;
1565
+ type?: "other" | "venue_booking" | "permit" | "insurance" | "license" | "portfolio" | undefined;
1566
+ url?: string | undefined;
1637
1567
  }[] | undefined;
1638
1568
  }, {
1639
1569
  media: {
@@ -1648,37 +1578,30 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
1648
1578
  url: string;
1649
1579
  }[] | undefined;
1650
1580
  };
1651
- description: string;
1652
1581
  eventId: string;
1653
1582
  hostId: string;
1583
+ tagline?: string | undefined;
1584
+ description?: string | undefined;
1585
+ highlights?: string[] | undefined;
1654
1586
  tickets?: {
1655
- name: string;
1656
- price: {
1657
- amount: number;
1658
- currency?: string | undefined;
1659
- };
1660
- quantity: number;
1661
- _id?: string | undefined;
1662
- limits?: {
1663
- minPerOrder?: number | undefined;
1664
- maxPerOrder?: number | undefined;
1665
- } | undefined;
1666
- sold?: number | undefined;
1667
- reserved?: number | undefined;
1668
- wristbandColor?: string | undefined;
1669
- isVisible?: boolean | undefined;
1670
- isActive?: boolean | undefined;
1587
+ _id: string;
1671
1588
  benefits?: string[] | undefined;
1672
- tier?: string | undefined;
1673
- salesWindow?: {
1674
- startDate?: string | undefined;
1675
- endDate?: string | undefined;
1676
- } | undefined;
1589
+ }[] | undefined;
1590
+ languages?: string[] | undefined;
1591
+ additionalDocuments?: {
1592
+ filename: string;
1593
+ objectKey: string;
1594
+ type?: "other" | "venue_booking" | "permit" | "insurance" | "license" | "portfolio" | undefined;
1595
+ url?: string | undefined;
1677
1596
  }[] | undefined;
1678
1597
  }>;
1679
- export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1598
+ export declare const approvedEventEditSchema: z.ZodObject<{
1680
1599
  eventId: z.ZodString;
1681
1600
  hostId: z.ZodString;
1601
+ description: z.ZodOptional<z.ZodString>;
1602
+ tagline: z.ZodOptional<z.ZodString>;
1603
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1604
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1682
1605
  media: z.ZodObject<{
1683
1606
  coverImage: z.ZodObject<{
1684
1607
  alt: z.ZodString;
@@ -1729,95 +1652,68 @@ export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1729
1652
  url: string;
1730
1653
  }[] | undefined;
1731
1654
  }>;
1732
- description: z.ZodString;
1733
1655
  tickets: z.ZodArray<z.ZodObject<{
1734
1656
  _id: z.ZodOptional<z.ZodString>;
1735
1657
  name: z.ZodString;
1736
- price: z.ZodObject<{
1737
- amount: z.ZodNumber;
1738
- currency: z.ZodDefault<z.ZodString>;
1739
- }, "strip", z.ZodTypeAny, {
1740
- amount: number;
1741
- currency: string;
1742
- }, {
1743
- amount: number;
1744
- currency?: string | undefined;
1745
- }>;
1658
+ price: z.ZodNumber;
1746
1659
  quantity: z.ZodNumber;
1660
+ benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1661
+ wristbandColor: z.ZodDefault<z.ZodString>;
1662
+ isVisible: z.ZodDefault<z.ZodBoolean>;
1663
+ isActive: z.ZodDefault<z.ZodBoolean>;
1747
1664
  limits: z.ZodOptional<z.ZodObject<{
1748
- minPerOrder: z.ZodDefault<z.ZodNumber>;
1749
- maxPerOrder: z.ZodDefault<z.ZodNumber>;
1665
+ minPerOrder: z.ZodNumber;
1666
+ maxPerOrder: z.ZodNumber;
1750
1667
  }, "strip", z.ZodTypeAny, {
1751
1668
  minPerOrder: number;
1752
1669
  maxPerOrder: number;
1753
1670
  }, {
1754
- minPerOrder?: number | undefined;
1755
- maxPerOrder?: number | undefined;
1756
- }>>;
1757
- sold: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1758
- reserved: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1759
- wristbandColor: z.ZodOptional<z.ZodString>;
1760
- isVisible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1761
- isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1762
- benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1763
- tier: z.ZodDefault<z.ZodString>;
1764
- salesWindow: z.ZodOptional<z.ZodObject<{
1765
- startDate: z.ZodOptional<z.ZodString>;
1766
- endDate: z.ZodOptional<z.ZodString>;
1767
- }, "strip", z.ZodTypeAny, {
1768
- startDate?: string | undefined;
1769
- endDate?: string | undefined;
1770
- }, {
1771
- startDate?: string | undefined;
1772
- endDate?: string | undefined;
1671
+ minPerOrder: number;
1672
+ maxPerOrder: number;
1773
1673
  }>>;
1774
1674
  }, "strip", z.ZodTypeAny, {
1775
1675
  name: string;
1776
- price: {
1777
- amount: number;
1778
- currency: string;
1779
- };
1676
+ price: number;
1780
1677
  quantity: number;
1781
- tier: string;
1678
+ wristbandColor: string;
1679
+ isVisible: boolean;
1680
+ isActive: boolean;
1782
1681
  _id?: string | undefined;
1783
1682
  limits?: {
1784
1683
  minPerOrder: number;
1785
1684
  maxPerOrder: number;
1786
1685
  } | undefined;
1787
- sold?: number | undefined;
1788
- reserved?: number | undefined;
1789
- wristbandColor?: string | undefined;
1790
- isVisible?: boolean | undefined;
1791
- isActive?: boolean | undefined;
1792
1686
  benefits?: string[] | undefined;
1793
- salesWindow?: {
1794
- startDate?: string | undefined;
1795
- endDate?: string | undefined;
1796
- } | undefined;
1797
1687
  }, {
1798
1688
  name: string;
1799
- price: {
1800
- amount: number;
1801
- currency?: string | undefined;
1802
- };
1689
+ price: number;
1803
1690
  quantity: number;
1804
1691
  _id?: string | undefined;
1805
1692
  limits?: {
1806
- minPerOrder?: number | undefined;
1807
- maxPerOrder?: number | undefined;
1693
+ minPerOrder: number;
1694
+ maxPerOrder: number;
1808
1695
  } | undefined;
1809
- sold?: number | undefined;
1810
- reserved?: number | undefined;
1811
1696
  wristbandColor?: string | undefined;
1812
1697
  isVisible?: boolean | undefined;
1813
1698
  isActive?: boolean | undefined;
1814
1699
  benefits?: string[] | undefined;
1815
- tier?: string | undefined;
1816
- salesWindow?: {
1817
- startDate?: string | undefined;
1818
- endDate?: string | undefined;
1819
- } | undefined;
1820
1700
  }>, "many">;
1701
+ schedule: z.ZodEffects<z.ZodOptional<z.ZodObject<{
1702
+ startDate: z.ZodDate;
1703
+ endDate: z.ZodDate;
1704
+ }, "strip", z.ZodTypeAny, {
1705
+ startDate: Date;
1706
+ endDate: Date;
1707
+ }, {
1708
+ startDate: Date;
1709
+ endDate: Date;
1710
+ }>>, {
1711
+ startDate: Date;
1712
+ endDate: Date;
1713
+ } | undefined, {
1714
+ startDate: Date;
1715
+ endDate: Date;
1716
+ } | undefined>;
1821
1717
  }, "strip", z.ZodTypeAny, {
1822
1718
  media: {
1823
1719
  coverImage: {
@@ -1831,33 +1727,30 @@ export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1831
1727
  url: string;
1832
1728
  }[] | undefined;
1833
1729
  };
1834
- description: string;
1835
1730
  tickets: {
1836
1731
  name: string;
1837
- price: {
1838
- amount: number;
1839
- currency: string;
1840
- };
1732
+ price: number;
1841
1733
  quantity: number;
1842
- tier: string;
1734
+ wristbandColor: string;
1735
+ isVisible: boolean;
1736
+ isActive: boolean;
1843
1737
  _id?: string | undefined;
1844
1738
  limits?: {
1845
1739
  minPerOrder: number;
1846
1740
  maxPerOrder: number;
1847
1741
  } | undefined;
1848
- sold?: number | undefined;
1849
- reserved?: number | undefined;
1850
- wristbandColor?: string | undefined;
1851
- isVisible?: boolean | undefined;
1852
- isActive?: boolean | undefined;
1853
1742
  benefits?: string[] | undefined;
1854
- salesWindow?: {
1855
- startDate?: string | undefined;
1856
- endDate?: string | undefined;
1857
- } | undefined;
1858
1743
  }[];
1859
1744
  eventId: string;
1860
1745
  hostId: string;
1746
+ tagline?: string | undefined;
1747
+ description?: string | undefined;
1748
+ highlights?: string[] | undefined;
1749
+ schedule?: {
1750
+ startDate: Date;
1751
+ endDate: Date;
1752
+ } | undefined;
1753
+ languages?: string[] | undefined;
1861
1754
  }, {
1862
1755
  media: {
1863
1756
  coverImage: {
@@ -1871,35 +1764,65 @@ export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1871
1764
  url: string;
1872
1765
  }[] | undefined;
1873
1766
  };
1874
- description: string;
1875
1767
  tickets: {
1876
1768
  name: string;
1877
- price: {
1878
- amount: number;
1879
- currency?: string | undefined;
1880
- };
1769
+ price: number;
1881
1770
  quantity: number;
1882
1771
  _id?: string | undefined;
1883
1772
  limits?: {
1884
- minPerOrder?: number | undefined;
1885
- maxPerOrder?: number | undefined;
1773
+ minPerOrder: number;
1774
+ maxPerOrder: number;
1886
1775
  } | undefined;
1887
- sold?: number | undefined;
1888
- reserved?: number | undefined;
1889
1776
  wristbandColor?: string | undefined;
1890
1777
  isVisible?: boolean | undefined;
1891
1778
  isActive?: boolean | undefined;
1892
1779
  benefits?: string[] | undefined;
1893
- tier?: string | undefined;
1894
- salesWindow?: {
1895
- startDate?: string | undefined;
1896
- endDate?: string | undefined;
1897
- } | undefined;
1898
1780
  }[];
1899
1781
  eventId: string;
1900
1782
  hostId: string;
1901
- }>, {
1902
- media: {
1783
+ tagline?: string | undefined;
1784
+ description?: string | undefined;
1785
+ highlights?: string[] | undefined;
1786
+ schedule?: {
1787
+ startDate: Date;
1788
+ endDate: Date;
1789
+ } | undefined;
1790
+ languages?: string[] | undefined;
1791
+ }>;
1792
+ export declare const publishedEventEditSchema: z.ZodObject<{
1793
+ eventId: z.ZodString;
1794
+ hostId: z.ZodString;
1795
+ description: z.ZodOptional<z.ZodString>;
1796
+ highlights: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1797
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1798
+ media: z.ZodOptional<z.ZodObject<{
1799
+ coverImage: z.ZodObject<{
1800
+ alt: z.ZodString;
1801
+ thumbnailUrl: z.ZodString;
1802
+ url: z.ZodString;
1803
+ }, "strip", z.ZodTypeAny, {
1804
+ alt: string;
1805
+ thumbnailUrl: string;
1806
+ url: string;
1807
+ }, {
1808
+ alt: string;
1809
+ thumbnailUrl: string;
1810
+ url: string;
1811
+ }>;
1812
+ gallery: z.ZodOptional<z.ZodArray<z.ZodObject<{
1813
+ alt: z.ZodString;
1814
+ thumbnailUrl: z.ZodString;
1815
+ url: z.ZodString;
1816
+ }, "strip", z.ZodTypeAny, {
1817
+ alt: string;
1818
+ thumbnailUrl: string;
1819
+ url: string;
1820
+ }, {
1821
+ alt: string;
1822
+ thumbnailUrl: string;
1823
+ url: string;
1824
+ }>, "many">>;
1825
+ }, "strip", z.ZodTypeAny, {
1903
1826
  coverImage: {
1904
1827
  alt: string;
1905
1828
  thumbnailUrl: string;
@@ -1910,36 +1833,78 @@ export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1910
1833
  thumbnailUrl: string;
1911
1834
  url: string;
1912
1835
  }[] | undefined;
1913
- };
1914
- description: string;
1915
- tickets: {
1916
- name: string;
1917
- price: {
1918
- amount: number;
1919
- currency: string;
1836
+ }, {
1837
+ coverImage: {
1838
+ alt: string;
1839
+ thumbnailUrl: string;
1840
+ url: string;
1920
1841
  };
1921
- quantity: number;
1922
- tier: string;
1923
- _id?: string | undefined;
1842
+ gallery?: {
1843
+ alt: string;
1844
+ thumbnailUrl: string;
1845
+ url: string;
1846
+ }[] | undefined;
1847
+ }>>;
1848
+ tickets: z.ZodArray<z.ZodObject<{
1849
+ _id: z.ZodString;
1850
+ price: z.ZodOptional<z.ZodNumber>;
1851
+ quantity: z.ZodOptional<z.ZodNumber>;
1852
+ benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1853
+ wristbandColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1854
+ isVisible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1855
+ isActive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1856
+ limits: z.ZodOptional<z.ZodObject<{
1857
+ minPerOrder: z.ZodOptional<z.ZodNumber>;
1858
+ maxPerOrder: z.ZodOptional<z.ZodNumber>;
1859
+ }, "strip", z.ZodTypeAny, {
1860
+ minPerOrder?: number | undefined;
1861
+ maxPerOrder?: number | undefined;
1862
+ }, {
1863
+ minPerOrder?: number | undefined;
1864
+ maxPerOrder?: number | undefined;
1865
+ }>>;
1866
+ }, "strip", z.ZodTypeAny, {
1867
+ _id: string;
1868
+ wristbandColor: string;
1869
+ isVisible: boolean;
1870
+ isActive: boolean;
1871
+ price?: number | undefined;
1872
+ quantity?: number | undefined;
1924
1873
  limits?: {
1925
- minPerOrder: number;
1926
- maxPerOrder: number;
1874
+ minPerOrder?: number | undefined;
1875
+ maxPerOrder?: number | undefined;
1876
+ } | undefined;
1877
+ benefits?: string[] | undefined;
1878
+ }, {
1879
+ _id: string;
1880
+ price?: number | undefined;
1881
+ quantity?: number | undefined;
1882
+ limits?: {
1883
+ minPerOrder?: number | undefined;
1884
+ maxPerOrder?: number | undefined;
1927
1885
  } | undefined;
1928
- sold?: number | undefined;
1929
- reserved?: number | undefined;
1930
1886
  wristbandColor?: string | undefined;
1931
1887
  isVisible?: boolean | undefined;
1932
1888
  isActive?: boolean | undefined;
1933
1889
  benefits?: string[] | undefined;
1934
- salesWindow?: {
1935
- startDate?: string | undefined;
1936
- endDate?: string | undefined;
1890
+ }>, "many">;
1891
+ }, "strip", z.ZodTypeAny, {
1892
+ tickets: {
1893
+ _id: string;
1894
+ wristbandColor: string;
1895
+ isVisible: boolean;
1896
+ isActive: boolean;
1897
+ price?: number | undefined;
1898
+ quantity?: number | undefined;
1899
+ limits?: {
1900
+ minPerOrder?: number | undefined;
1901
+ maxPerOrder?: number | undefined;
1937
1902
  } | undefined;
1903
+ benefits?: string[] | undefined;
1938
1904
  }[];
1939
1905
  eventId: string;
1940
1906
  hostId: string;
1941
- }, {
1942
- media: {
1907
+ media?: {
1943
1908
  coverImage: {
1944
1909
  alt: string;
1945
1910
  thumbnailUrl: string;
@@ -1950,34 +1915,93 @@ export declare const approvedEventEditSchema: z.ZodEffects<z.ZodObject<{
1950
1915
  thumbnailUrl: string;
1951
1916
  url: string;
1952
1917
  }[] | undefined;
1953
- };
1954
- description: string;
1918
+ } | undefined;
1919
+ description?: string | undefined;
1920
+ highlights?: string[] | undefined;
1921
+ languages?: string[] | undefined;
1922
+ }, {
1955
1923
  tickets: {
1956
- name: string;
1957
- price: {
1958
- amount: number;
1959
- currency?: string | undefined;
1960
- };
1961
- quantity: number;
1962
- _id?: string | undefined;
1924
+ _id: string;
1925
+ price?: number | undefined;
1926
+ quantity?: number | undefined;
1963
1927
  limits?: {
1964
1928
  minPerOrder?: number | undefined;
1965
1929
  maxPerOrder?: number | undefined;
1966
1930
  } | undefined;
1967
- sold?: number | undefined;
1968
- reserved?: number | undefined;
1969
1931
  wristbandColor?: string | undefined;
1970
1932
  isVisible?: boolean | undefined;
1971
1933
  isActive?: boolean | undefined;
1972
1934
  benefits?: string[] | undefined;
1973
- tier?: string | undefined;
1974
- salesWindow?: {
1975
- startDate?: string | undefined;
1976
- endDate?: string | undefined;
1977
- } | undefined;
1978
1935
  }[];
1979
1936
  eventId: string;
1980
1937
  hostId: string;
1938
+ media?: {
1939
+ coverImage: {
1940
+ alt: string;
1941
+ thumbnailUrl: string;
1942
+ url: string;
1943
+ };
1944
+ gallery?: {
1945
+ alt: string;
1946
+ thumbnailUrl: string;
1947
+ url: string;
1948
+ }[] | undefined;
1949
+ } | undefined;
1950
+ description?: string | undefined;
1951
+ highlights?: string[] | undefined;
1952
+ languages?: string[] | undefined;
1953
+ }>;
1954
+ export declare const liveEventEditSchema: z.ZodObject<{
1955
+ eventId: z.ZodString;
1956
+ hostId: z.ZodString;
1957
+ liveUpdate: z.ZodOptional<z.ZodString>;
1958
+ tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
1959
+ _id: z.ZodString;
1960
+ quantity: z.ZodOptional<z.ZodNumber>;
1961
+ isActive: z.ZodOptional<z.ZodBoolean>;
1962
+ }, "strip", z.ZodTypeAny, {
1963
+ _id: string;
1964
+ quantity?: number | undefined;
1965
+ isActive?: boolean | undefined;
1966
+ }, {
1967
+ _id: string;
1968
+ quantity?: number | undefined;
1969
+ isActive?: boolean | undefined;
1970
+ }>, "many">>;
1971
+ }, "strip", z.ZodTypeAny, {
1972
+ eventId: string;
1973
+ hostId: string;
1974
+ tickets?: {
1975
+ _id: string;
1976
+ quantity?: number | undefined;
1977
+ isActive?: boolean | undefined;
1978
+ }[] | undefined;
1979
+ liveUpdate?: string | undefined;
1980
+ }, {
1981
+ eventId: string;
1982
+ hostId: string;
1983
+ tickets?: {
1984
+ _id: string;
1985
+ quantity?: number | undefined;
1986
+ isActive?: boolean | undefined;
1987
+ }[] | undefined;
1988
+ liveUpdate?: string | undefined;
1989
+ }>;
1990
+ export declare const endedEventEditSchema: z.ZodObject<{
1991
+ eventId: z.ZodString;
1992
+ hostId: z.ZodString;
1993
+ recap: z.ZodOptional<z.ZodString>;
1994
+ eventPhotos: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1995
+ }, "strip", z.ZodTypeAny, {
1996
+ eventId: string;
1997
+ hostId: string;
1998
+ recap?: string | undefined;
1999
+ eventPhotos?: string[] | undefined;
2000
+ }, {
2001
+ eventId: string;
2002
+ hostId: string;
2003
+ recap?: string | undefined;
2004
+ eventPhotos?: string[] | undefined;
1981
2005
  }>;
1982
2006
  export declare const submitEventSchema: z.ZodObject<{
1983
2007
  title: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.draftEventSchema = exports.clientGetEventSchema = exports.submitEventSchema = exports.approvedEventEditSchema = exports.pendingApprovalEditSchema = exports.protectedEventSchema = exports.getEventSchema = exports.stepReviewSchema = exports.stepTicketsSchema = exports.stepVerifySchema = exports.stepLogisticsSchema = exports.stepDetailsSchema = exports.stepBasicsSchema = void 0;
3
+ exports.draftEventSchema = exports.clientGetEventSchema = exports.submitEventSchema = exports.endedEventEditSchema = exports.liveEventEditSchema = exports.publishedEventEditSchema = exports.approvedEventEditSchema = exports.pendingApprovalEditSchema = exports.protectedEventSchema = exports.getEventSchema = exports.stepReviewSchema = exports.stepTicketsSchema = exports.stepVerifySchema = exports.stepLogisticsSchema = exports.stepDetailsSchema = exports.stepBasicsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const event_type_schema_1 = require("./utils/event.type.schema");
6
6
  const media_schema_1 = require("./utils/media.schema");
@@ -90,31 +90,113 @@ exports.protectedEventSchema = zod_1.z.object({
90
90
  eventId: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
91
91
  hostId: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
92
92
  });
93
+ // Pending Approval
93
94
  exports.pendingApprovalEditSchema = zod_1.z.object({
94
95
  eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
95
96
  hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
97
+ // Editable fields
98
+ description: zod_1.z.string().min(50, 'Description must be at least 50 characters').max(events_constants_1.MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${events_constants_1.MAX_DESCRIPTION_LENGTH} characters`).optional(),
99
+ tagline: zod_1.z.string().max(150, 'Tagline must be at most 150 characters').optional(),
100
+ highlights: zod_1.z.array(zod_1.z.string().max(200, 'Each highlight cannot exceed 200 characters'), { required_error: 'Highlights must be an array of strings' }).max(10, 'Cannot have more than 10 highlights').optional(),
101
+ languages: zod_1.z.array(zod_1.z.string()).optional(),
96
102
  media: media_schema_1.mediaSchema,
97
- description: zod_1.z.string({ required_error: 'Event description is required' }).min(50, 'Description must be at least 50 characters').max(events_constants_1.MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${events_constants_1.MAX_DESCRIPTION_LENGTH} characters`),
98
- tickets: zod_1.z.array(ticket_schema_1.displayTicketSchema).min(1, 'At least one ticket type is required').optional(),
103
+ // Can add docs, not remove
104
+ additionalDocuments: zod_1.z.array(document_schema_1.documentSchema).optional(),
105
+ // Can clarify benefits, not change structure
106
+ tickets: zod_1.z.array(zod_1.z.object({
107
+ _id: zod_1.z.string(),
108
+ benefits: zod_1.z.array(zod_1.z.string()).optional()
109
+ })).optional()
99
110
  });
111
+ // Approved
100
112
  exports.approvedEventEditSchema = zod_1.z.object({
101
113
  eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
102
114
  hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
115
+ // Marketing content
116
+ description: zod_1.z.string().min(50, 'Description must be at least 50 characters').max(events_constants_1.MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${events_constants_1.MAX_DESCRIPTION_LENGTH} characters`).optional(),
117
+ tagline: zod_1.z.string().max(150, 'Tagline must be at most 150 characters').optional(),
118
+ highlights: zod_1.z.array(zod_1.z.string().max(200)).max(10).optional(),
119
+ languages: zod_1.z.array(zod_1.z.string()).optional(),
103
120
  media: media_schema_1.mediaSchema,
104
- description: zod_1.z.string({ required_error: 'Event description is required' }).min(50, 'Description must be at least 50 characters').max(events_constants_1.MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${events_constants_1.MAX_DESCRIPTION_LENGTH} characters`),
105
- tickets: zod_1.z.array(ticket_schema_1.displayTicketSchema).min(1, 'At least one ticket type is required'),
106
- }).refine(data => {
107
- for (const ticket of data.tickets) {
108
- if (ticket.salesWindow?.startDate && ticket.salesWindow?.endDate) {
109
- if (new Date(ticket.salesWindow.endDate) <= new Date(ticket.salesWindow.startDate)) {
110
- return false;
111
- }
112
- }
113
- }
114
- return true;
115
- }, {
116
- message: "End date and time must be after start date and time",
117
- path: ["tickets", "salesWindow", "endDate"]
121
+ // Tickets (full control, no sales yet)
122
+ tickets: zod_1.z.array(zod_1.z.object({
123
+ _id: zod_1.z.string().optional(), // Undefined = new tier
124
+ name: zod_1.z.string({ required_error: 'Ticket name is required' }),
125
+ price: zod_1.z.number({ required_error: 'Ticket price is required' }).min(0, 'Ticket price cannot be negative'),
126
+ quantity: zod_1.z.number({ required_error: 'Ticket quantity is required' }).min(1, 'Ticket quantity must be at least 1'),
127
+ benefits: zod_1.z.array(zod_1.z.string()).optional(),
128
+ wristbandColor: zod_1.z.string().default('#000000'),
129
+ isVisible: zod_1.z.boolean().default(true),
130
+ isActive: zod_1.z.boolean().default(true),
131
+ limits: zod_1.z.object({
132
+ minPerOrder: zod_1.z.number({ required_error: 'Min per order is required' }).min(1, 'Min per order must be at least 1'),
133
+ maxPerOrder: zod_1.z.number({ required_error: 'Max per order is required' }).min(1, 'Max per order must be at least 1')
134
+ }).optional()
135
+ })).min(1),
136
+ // Minor date adjustments (±2 hours)
137
+ schedule: zod_1.z.object({
138
+ startDate: zod_1.z.date(),
139
+ endDate: zod_1.z.date()
140
+ }).optional().refine(data => {
141
+ if (!data?.startDate || !data?.endDate)
142
+ return false;
143
+ const diff = Math.abs(data?.startDate?.getTime() - data?.endDate?.getTime());
144
+ return diff <= 2 * 60 * 60 * 1000;
145
+ }, {
146
+ message: 'Schedule must be within 2 hours of original',
147
+ path: ['schedule', 'endDate']
148
+ })
149
+ });
150
+ // Published
151
+ exports.publishedEventEditSchema = zod_1.z.object({
152
+ eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
153
+ hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
154
+ // Can add, not remove
155
+ description: zod_1.z.string().min(50, 'Description must be at least 50 characters').max(events_constants_1.MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${events_constants_1.MAX_DESCRIPTION_LENGTH} characters`).optional(),
156
+ highlights: zod_1.z.array(zod_1.z.string().max(200, 'Each highlight cannot exceed 200 characters'), { required_error: 'Highlights must be an array of strings' }).max(10, 'Cannot have more than 10 highlights').optional(),
157
+ languages: zod_1.z.array(zod_1.z.string()).optional(),
158
+ // Media (with warning)
159
+ media: media_schema_1.mediaSchema.optional(),
160
+ // Ticket updates (complex validation)
161
+ tickets: zod_1.z.array(zod_1.z.object({
162
+ _id: zod_1.z.string(),
163
+ // Price change validation happens in controller
164
+ price: zod_1.z.number().min(0).optional(),
165
+ // Quantity increase only (unless sold = 0)
166
+ quantity: zod_1.z.number().min(1).optional(),
167
+ // Can add benefits, not remove
168
+ benefits: zod_1.z.array(zod_1.z.string()).optional(),
169
+ // Operational controls
170
+ wristbandColor: zod_1.z.string().optional().default('#000000'),
171
+ isVisible: zod_1.z.boolean().optional().default(true),
172
+ isActive: zod_1.z.boolean().optional().default(true),
173
+ // Cannot change limits if sales exist
174
+ limits: zod_1.z.object({
175
+ minPerOrder: zod_1.z.number().min(1, 'Min per order must be at least 1').optional(),
176
+ maxPerOrder: zod_1.z.number().min(1, 'Max per order must be at least 1').optional()
177
+ }).optional()
178
+ }))
179
+ });
180
+ // Live
181
+ exports.liveEventEditSchema = zod_1.z.object({
182
+ eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
183
+ hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
184
+ // Live update only
185
+ liveUpdate: zod_1.z.string().max(500, 'Live update cannot exceed 500 characters').optional(),
186
+ // Ticket operational controls
187
+ tickets: zod_1.z.array(zod_1.z.object({
188
+ _id: zod_1.z.string(),
189
+ quantity: zod_1.z.number().min(1).optional(), // Increase only
190
+ isActive: zod_1.z.boolean().optional() // Pause sales
191
+ })).optional()
192
+ });
193
+ // Ended
194
+ exports.endedEventEditSchema = zod_1.z.object({
195
+ eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
196
+ hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
197
+ // Post-event content
198
+ recap: zod_1.z.string().max(2000, 'Recap cannot exceed 2000 characters').optional(),
199
+ eventPhotos: zod_1.z.array(zod_1.z.string()).max(20, 'Cannot have more than 20 event photos').optional()
118
200
  });
119
201
  // =============================================================================
120
202
  // COMPOSITE SCHEMAS
@@ -7,7 +7,7 @@ import { documentSchema } from './utils/document.schema';
7
7
  import { displayTicketSchema } from './utils/ticket.schema';
8
8
  import { eventTypeSchema } from './utils/event.type.schema';
9
9
  import { ageRestrictionSchema } from './utils/age.restriction.schema';
10
- import { stepBasicsSchema, getEventSchema, protectedEventSchema, clientGetEventSchema, stepDetailsSchema, stepLogisticsSchema, stepVerifySchema, stepTicketsSchema, stepReviewSchema, submitEventSchema, draftEventSchema, pendingApprovalEditSchema, approvedEventEditSchema } from './events.schema';
10
+ import { stepBasicsSchema, getEventSchema, publishedEventEditSchema, liveEventEditSchema, endedEventEditSchema, protectedEventSchema, clientGetEventSchema, stepDetailsSchema, stepLogisticsSchema, stepVerifySchema, stepTicketsSchema, stepReviewSchema, submitEventSchema, draftEventSchema, pendingApprovalEditSchema, approvedEventEditSchema } from './events.schema';
11
11
  export type Media = z.infer<typeof mediaSchema>;
12
12
  export type CoverImage = z.infer<typeof mediaSchema.shape.coverImage>;
13
13
  export type Gallery = z.infer<typeof mediaSchema.shape.gallery>;
@@ -37,3 +37,6 @@ export type ProtectedEventData = z.infer<typeof protectedEventSchema>;
37
37
  export type ClientGetEventData = z.infer<typeof clientGetEventSchema>;
38
38
  export type PendingApprovalEditData = z.infer<typeof pendingApprovalEditSchema>;
39
39
  export type ApprovedEventEditData = z.infer<typeof approvedEventEditSchema>;
40
+ export type PublishedEventEditData = z.infer<typeof publishedEventEditSchema>;
41
+ export type LiveEventEditData = z.infer<typeof liveEventEditSchema>;
42
+ export type EndedEventEditData = z.infer<typeof endedEventEditSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mac777/project-pinecone-schema",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -98,33 +98,134 @@ export const protectedEventSchema = z.object({
98
98
  hostId: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
99
99
  });
100
100
 
101
+ // Pending Approval
101
102
  export const pendingApprovalEditSchema = z.object({
102
103
  eventId: z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
103
104
  hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
105
+
106
+ // Editable fields
107
+ description: z.string().min(50, 'Description must be at least 50 characters').max(MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${MAX_DESCRIPTION_LENGTH} characters`).optional(),
108
+ tagline: z.string().max(150, 'Tagline must be at most 150 characters').optional(),
109
+ highlights: z.array(z.string().max(200, 'Each highlight cannot exceed 200 characters'), { required_error: 'Highlights must be an array of strings' }).max(10, 'Cannot have more than 10 highlights').optional(),
110
+ languages: z.array(z.string()).optional(),
104
111
  media: mediaSchema,
105
- description: z.string({ required_error: 'Event description is required' }).min(50, 'Description must be at least 50 characters').max(MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${MAX_DESCRIPTION_LENGTH} characters`),
106
- tickets: z.array(displayTicketSchema).min(1, 'At least one ticket type is required').optional(),
107
- })
112
+
113
+ // Can add docs, not remove
114
+ additionalDocuments: z.array(documentSchema).optional(),
115
+
116
+ // Can clarify benefits, not change structure
117
+ tickets: z.array(z.object({
118
+ _id: z.string(),
119
+ benefits: z.array(z.string()).optional()
120
+ })).optional()
121
+ });
108
122
 
123
+ // Approved
109
124
  export const approvedEventEditSchema = z.object({
110
125
  eventId: z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
111
126
  hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/, 'Unauthorized'),
127
+
128
+ // Marketing content
129
+ description: z.string().min(50, 'Description must be at least 50 characters').max(MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${MAX_DESCRIPTION_LENGTH} characters`).optional(),
130
+ tagline: z.string().max(150, 'Tagline must be at most 150 characters').optional(),
131
+ highlights: z.array(z.string().max(200)).max(10).optional(),
132
+ languages: z.array(z.string()).optional(),
112
133
  media: mediaSchema,
113
- description: z.string({ required_error: 'Event description is required' }).min(50, 'Description must be at least 50 characters').max(MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${MAX_DESCRIPTION_LENGTH} characters`),
114
- tickets: z.array(displayTicketSchema).min(1, 'At least one ticket type is required'),
115
- }).refine(data=> {
116
- for (const ticket of data.tickets) {
117
- if (ticket.salesWindow?.startDate && ticket.salesWindow?.endDate) {
118
- if (new Date(ticket.salesWindow.endDate) <= new Date(ticket.salesWindow.startDate)) {
119
- return false;
120
- }
121
- }
122
- }
123
- return true;
124
- }, {
125
- message: "End date and time must be after start date and time",
126
- path: ["tickets", "salesWindow", "endDate"]
127
- })
134
+
135
+ // Tickets (full control, no sales yet)
136
+ tickets: z.array(z.object({
137
+ _id: z.string().optional(), // Undefined = new tier
138
+ name: z.string({ required_error: 'Ticket name is required' }),
139
+ price: z.number({ required_error: 'Ticket price is required' }).min(0, 'Ticket price cannot be negative'),
140
+ quantity: z.number({ required_error: 'Ticket quantity is required' }).min(1, 'Ticket quantity must be at least 1'),
141
+ benefits: z.array(z.string()).optional(),
142
+ wristbandColor: z.string().default('#000000'),
143
+ isVisible: z.boolean().default(true),
144
+ isActive: z.boolean().default(true),
145
+ limits: z.object({
146
+ minPerOrder: z.number({ required_error: 'Min per order is required' }).min(1, 'Min per order must be at least 1'),
147
+ maxPerOrder: z.number({ required_error: 'Max per order is required' }).min(1, 'Max per order must be at least 1')
148
+ }).optional()
149
+ })).min(1),
150
+
151
+ // Minor date adjustments (±2 hours)
152
+ schedule: z.object({
153
+ startDate: z.date(),
154
+ endDate: z.date()
155
+ }).optional().refine(data => {
156
+ if (!data?.startDate || !data?.endDate) return false;
157
+ const diff = Math.abs(data?.startDate?.getTime() - data?.endDate?.getTime());
158
+ return diff <= 2 * 60 * 60 * 1000;
159
+ }, {
160
+ message: 'Schedule must be within 2 hours of original',
161
+ path: ['schedule', 'endDate']
162
+ })
163
+ });
164
+
165
+ // Published
166
+ export const publishedEventEditSchema = z.object({
167
+ eventId: z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
168
+ hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
169
+
170
+ // Can add, not remove
171
+ description: z.string().min(50, 'Description must be at least 50 characters').max(MAX_DESCRIPTION_LENGTH, `Description cannot exceed ${MAX_DESCRIPTION_LENGTH} characters`).optional(),
172
+ highlights: z.array(z.string().max(200, 'Each highlight cannot exceed 200 characters'), { required_error: 'Highlights must be an array of strings' }).max(10, 'Cannot have more than 10 highlights').optional(),
173
+ languages: z.array(z.string()).optional(),
174
+
175
+ // Media (with warning)
176
+ media: mediaSchema.optional(),
177
+
178
+ // Ticket updates (complex validation)
179
+ tickets: z.array(z.object({
180
+ _id: z.string(),
181
+
182
+ // Price change validation happens in controller
183
+ price: z.number().min(0).optional(),
184
+
185
+ // Quantity increase only (unless sold = 0)
186
+ quantity: z.number().min(1).optional(),
187
+
188
+ // Can add benefits, not remove
189
+ benefits: z.array(z.string()).optional(),
190
+
191
+ // Operational controls
192
+ wristbandColor: z.string().optional().default('#000000'),
193
+ isVisible: z.boolean().optional().default(true),
194
+ isActive: z.boolean().optional().default(true),
195
+
196
+ // Cannot change limits if sales exist
197
+ limits: z.object({
198
+ minPerOrder: z.number().min(1, 'Min per order must be at least 1').optional(),
199
+ maxPerOrder: z.number().min(1, 'Max per order must be at least 1').optional()
200
+ }).optional()
201
+ }))
202
+ });
203
+
204
+ // Live
205
+ export const liveEventEditSchema = z.object({
206
+ eventId: z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
207
+ hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
208
+
209
+ // Live update only
210
+ liveUpdate: z.string().max(500, 'Live update cannot exceed 500 characters').optional(),
211
+
212
+ // Ticket operational controls
213
+ tickets: z.array(z.object({
214
+ _id: z.string(),
215
+ quantity: z.number().min(1).optional(), // Increase only
216
+ isActive: z.boolean().optional() // Pause sales
217
+ })).optional()
218
+ });
219
+
220
+ // Ended
221
+ export const endedEventEditSchema = z.object({
222
+ eventId: z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
223
+ hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
224
+
225
+ // Post-event content
226
+ recap: z.string().max(2000, 'Recap cannot exceed 2000 characters').optional(),
227
+ eventPhotos: z.array(z.string()).max(20, 'Cannot have more than 20 event photos').optional()
228
+ });
128
229
 
129
230
  // =============================================================================
130
231
  // COMPOSITE SCHEMAS
@@ -7,7 +7,7 @@ import { documentSchema } from './utils/document.schema';
7
7
  import { displayTicketSchema } from './utils/ticket.schema';
8
8
  import { eventTypeSchema } from './utils/event.type.schema';
9
9
  import { ageRestrictionSchema } from './utils/age.restriction.schema';
10
- import { stepBasicsSchema, getEventSchema, protectedEventSchema, clientGetEventSchema, stepDetailsSchema, stepLogisticsSchema, stepVerifySchema, stepTicketsSchema, stepReviewSchema, submitEventSchema, draftEventSchema, pendingApprovalEditSchema, approvedEventEditSchema } from './events.schema';
10
+ import { stepBasicsSchema, getEventSchema, publishedEventEditSchema, liveEventEditSchema, endedEventEditSchema, protectedEventSchema, clientGetEventSchema, stepDetailsSchema, stepLogisticsSchema, stepVerifySchema, stepTicketsSchema, stepReviewSchema, submitEventSchema, draftEventSchema, pendingApprovalEditSchema, approvedEventEditSchema } from './events.schema';
11
11
 
12
12
  // =============================================================================
13
13
  // TYPE EXPORTS
@@ -49,3 +49,6 @@ export type ProtectedEventData = z.infer<typeof protectedEventSchema>;
49
49
  export type ClientGetEventData = z.infer<typeof clientGetEventSchema>;
50
50
  export type PendingApprovalEditData = z.infer<typeof pendingApprovalEditSchema>;
51
51
  export type ApprovedEventEditData = z.infer<typeof approvedEventEditSchema>;
52
+ export type PublishedEventEditData = z.infer<typeof publishedEventEditSchema>;
53
+ export type LiveEventEditData = z.infer<typeof liveEventEditSchema>;
54
+ export type EndedEventEditData = z.infer<typeof endedEventEditSchema>;