@mac777/project-pinecone-schema 1.1.0 → 1.1.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.
- package/dist/events/events.schema.d.ts +337 -68
- package/dist/events/events.schema.js +79 -24
- package/package.json +1 -1
- package/src/events/events.schema.ts +78 -30
|
@@ -1653,14 +1653,92 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
|
|
|
1653
1653
|
url?: string | undefined;
|
|
1654
1654
|
}>, "many">>;
|
|
1655
1655
|
tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1656
|
-
_id: z.ZodString
|
|
1656
|
+
_id: z.ZodOptional<z.ZodString>;
|
|
1657
|
+
name: z.ZodString;
|
|
1658
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1659
|
+
price: z.ZodObject<{
|
|
1660
|
+
amount: z.ZodNumber;
|
|
1661
|
+
currency: z.ZodDefault<z.ZodString>;
|
|
1662
|
+
}, "strip", z.ZodTypeAny, {
|
|
1663
|
+
amount: number;
|
|
1664
|
+
currency: string;
|
|
1665
|
+
}, {
|
|
1666
|
+
amount: number;
|
|
1667
|
+
currency?: string | undefined;
|
|
1668
|
+
}>;
|
|
1669
|
+
quantity: z.ZodNumber;
|
|
1670
|
+
tier: z.ZodDefault<z.ZodString>;
|
|
1657
1671
|
benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1672
|
+
wristbandColor: z.ZodDefault<z.ZodString>;
|
|
1673
|
+
accentColor: z.ZodDefault<z.ZodString>;
|
|
1674
|
+
isDark: z.ZodDefault<z.ZodBoolean>;
|
|
1675
|
+
glassMode: z.ZodDefault<z.ZodBoolean>;
|
|
1676
|
+
cornerRadius: z.ZodDefault<z.ZodNumber>;
|
|
1677
|
+
perforationStyle: z.ZodDefault<z.ZodEnum<["solid", "dashed", "dotted"]>>;
|
|
1678
|
+
isVisible: z.ZodDefault<z.ZodBoolean>;
|
|
1679
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
1680
|
+
limits: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
1681
|
+
minPerOrder: z.ZodNumber;
|
|
1682
|
+
maxPerOrder: z.ZodNumber;
|
|
1683
|
+
}, "strip", z.ZodTypeAny, {
|
|
1684
|
+
minPerOrder: number;
|
|
1685
|
+
maxPerOrder: number;
|
|
1686
|
+
}, {
|
|
1687
|
+
minPerOrder: number;
|
|
1688
|
+
maxPerOrder: number;
|
|
1689
|
+
}>>, {
|
|
1690
|
+
minPerOrder: number;
|
|
1691
|
+
maxPerOrder: number;
|
|
1692
|
+
} | undefined, {
|
|
1693
|
+
minPerOrder: number;
|
|
1694
|
+
maxPerOrder: number;
|
|
1695
|
+
} | undefined>;
|
|
1658
1696
|
}, "strip", z.ZodTypeAny, {
|
|
1659
|
-
|
|
1697
|
+
name: string;
|
|
1698
|
+
price: {
|
|
1699
|
+
amount: number;
|
|
1700
|
+
currency: string;
|
|
1701
|
+
};
|
|
1702
|
+
quantity: number;
|
|
1703
|
+
wristbandColor: string;
|
|
1704
|
+
accentColor: string;
|
|
1705
|
+
isDark: boolean;
|
|
1706
|
+
glassMode: boolean;
|
|
1707
|
+
cornerRadius: number;
|
|
1708
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
1709
|
+
isVisible: boolean;
|
|
1710
|
+
isActive: boolean;
|
|
1711
|
+
tier: string;
|
|
1712
|
+
_id?: string | undefined;
|
|
1713
|
+
description?: string | undefined;
|
|
1714
|
+
limits?: {
|
|
1715
|
+
minPerOrder: number;
|
|
1716
|
+
maxPerOrder: number;
|
|
1717
|
+
} | undefined;
|
|
1660
1718
|
benefits?: string[] | undefined;
|
|
1661
1719
|
}, {
|
|
1662
|
-
|
|
1720
|
+
name: string;
|
|
1721
|
+
price: {
|
|
1722
|
+
amount: number;
|
|
1723
|
+
currency?: string | undefined;
|
|
1724
|
+
};
|
|
1725
|
+
quantity: number;
|
|
1726
|
+
_id?: string | undefined;
|
|
1727
|
+
description?: string | undefined;
|
|
1728
|
+
limits?: {
|
|
1729
|
+
minPerOrder: number;
|
|
1730
|
+
maxPerOrder: number;
|
|
1731
|
+
} | undefined;
|
|
1732
|
+
wristbandColor?: string | undefined;
|
|
1733
|
+
accentColor?: string | undefined;
|
|
1734
|
+
isDark?: boolean | undefined;
|
|
1735
|
+
glassMode?: boolean | undefined;
|
|
1736
|
+
cornerRadius?: number | undefined;
|
|
1737
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
1738
|
+
isVisible?: boolean | undefined;
|
|
1739
|
+
isActive?: boolean | undefined;
|
|
1663
1740
|
benefits?: string[] | undefined;
|
|
1741
|
+
tier?: string | undefined;
|
|
1664
1742
|
}>, "many">>;
|
|
1665
1743
|
}, "strip", z.ZodTypeAny, {
|
|
1666
1744
|
eventId: string;
|
|
@@ -1681,7 +1759,27 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
|
|
|
1681
1759
|
} | undefined;
|
|
1682
1760
|
highlights?: string[] | undefined;
|
|
1683
1761
|
tickets?: {
|
|
1684
|
-
|
|
1762
|
+
name: string;
|
|
1763
|
+
price: {
|
|
1764
|
+
amount: number;
|
|
1765
|
+
currency: string;
|
|
1766
|
+
};
|
|
1767
|
+
quantity: number;
|
|
1768
|
+
wristbandColor: string;
|
|
1769
|
+
accentColor: string;
|
|
1770
|
+
isDark: boolean;
|
|
1771
|
+
glassMode: boolean;
|
|
1772
|
+
cornerRadius: number;
|
|
1773
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
1774
|
+
isVisible: boolean;
|
|
1775
|
+
isActive: boolean;
|
|
1776
|
+
tier: string;
|
|
1777
|
+
_id?: string | undefined;
|
|
1778
|
+
description?: string | undefined;
|
|
1779
|
+
limits?: {
|
|
1780
|
+
minPerOrder: number;
|
|
1781
|
+
maxPerOrder: number;
|
|
1782
|
+
} | undefined;
|
|
1685
1783
|
benefits?: string[] | undefined;
|
|
1686
1784
|
}[] | undefined;
|
|
1687
1785
|
languages?: string[] | undefined;
|
|
@@ -1710,8 +1808,28 @@ export declare const pendingApprovalEditSchema: z.ZodObject<{
|
|
|
1710
1808
|
} | undefined;
|
|
1711
1809
|
highlights?: string[] | undefined;
|
|
1712
1810
|
tickets?: {
|
|
1713
|
-
|
|
1811
|
+
name: string;
|
|
1812
|
+
price: {
|
|
1813
|
+
amount: number;
|
|
1814
|
+
currency?: string | undefined;
|
|
1815
|
+
};
|
|
1816
|
+
quantity: number;
|
|
1817
|
+
_id?: string | undefined;
|
|
1818
|
+
description?: string | undefined;
|
|
1819
|
+
limits?: {
|
|
1820
|
+
minPerOrder: number;
|
|
1821
|
+
maxPerOrder: number;
|
|
1822
|
+
} | undefined;
|
|
1823
|
+
wristbandColor?: string | undefined;
|
|
1824
|
+
accentColor?: string | undefined;
|
|
1825
|
+
isDark?: boolean | undefined;
|
|
1826
|
+
glassMode?: boolean | undefined;
|
|
1827
|
+
cornerRadius?: number | undefined;
|
|
1828
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
1829
|
+
isVisible?: boolean | undefined;
|
|
1830
|
+
isActive?: boolean | undefined;
|
|
1714
1831
|
benefits?: string[] | undefined;
|
|
1832
|
+
tier?: string | undefined;
|
|
1715
1833
|
}[] | undefined;
|
|
1716
1834
|
languages?: string[] | undefined;
|
|
1717
1835
|
additionalDocuments?: {
|
|
@@ -2034,8 +2152,10 @@ export declare const publishedEventEditSchema: z.ZodObject<{
|
|
|
2034
2152
|
}[] | undefined;
|
|
2035
2153
|
}>>;
|
|
2036
2154
|
tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2037
|
-
_id: z.ZodString
|
|
2038
|
-
|
|
2155
|
+
_id: z.ZodOptional<z.ZodString>;
|
|
2156
|
+
name: z.ZodString;
|
|
2157
|
+
description: z.ZodOptional<z.ZodString>;
|
|
2158
|
+
price: z.ZodObject<{
|
|
2039
2159
|
amount: z.ZodNumber;
|
|
2040
2160
|
currency: z.ZodDefault<z.ZodString>;
|
|
2041
2161
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -2044,61 +2164,80 @@ export declare const publishedEventEditSchema: z.ZodObject<{
|
|
|
2044
2164
|
}, {
|
|
2045
2165
|
amount: number;
|
|
2046
2166
|
currency?: string | undefined;
|
|
2047
|
-
}
|
|
2048
|
-
quantity: z.
|
|
2167
|
+
}>;
|
|
2168
|
+
quantity: z.ZodNumber;
|
|
2169
|
+
tier: z.ZodDefault<z.ZodString>;
|
|
2049
2170
|
benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2050
|
-
wristbandColor: z.
|
|
2051
|
-
accentColor: z.
|
|
2052
|
-
|
|
2053
|
-
|
|
2171
|
+
wristbandColor: z.ZodDefault<z.ZodString>;
|
|
2172
|
+
accentColor: z.ZodDefault<z.ZodString>;
|
|
2173
|
+
isDark: z.ZodDefault<z.ZodBoolean>;
|
|
2174
|
+
glassMode: z.ZodDefault<z.ZodBoolean>;
|
|
2175
|
+
cornerRadius: z.ZodDefault<z.ZodNumber>;
|
|
2176
|
+
perforationStyle: z.ZodDefault<z.ZodEnum<["solid", "dashed", "dotted"]>>;
|
|
2177
|
+
isVisible: z.ZodDefault<z.ZodBoolean>;
|
|
2178
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
2054
2179
|
limits: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
2055
|
-
minPerOrder: z.
|
|
2056
|
-
maxPerOrder: z.
|
|
2180
|
+
minPerOrder: z.ZodNumber;
|
|
2181
|
+
maxPerOrder: z.ZodNumber;
|
|
2057
2182
|
}, "strip", z.ZodTypeAny, {
|
|
2058
|
-
minPerOrder
|
|
2059
|
-
maxPerOrder
|
|
2183
|
+
minPerOrder: number;
|
|
2184
|
+
maxPerOrder: number;
|
|
2060
2185
|
}, {
|
|
2061
|
-
minPerOrder
|
|
2062
|
-
maxPerOrder
|
|
2186
|
+
minPerOrder: number;
|
|
2187
|
+
maxPerOrder: number;
|
|
2063
2188
|
}>>, {
|
|
2064
|
-
minPerOrder
|
|
2065
|
-
maxPerOrder
|
|
2189
|
+
minPerOrder: number;
|
|
2190
|
+
maxPerOrder: number;
|
|
2066
2191
|
} | undefined, {
|
|
2067
|
-
minPerOrder
|
|
2068
|
-
maxPerOrder
|
|
2192
|
+
minPerOrder: number;
|
|
2193
|
+
maxPerOrder: number;
|
|
2069
2194
|
} | undefined>;
|
|
2070
2195
|
}, "strip", z.ZodTypeAny, {
|
|
2071
|
-
|
|
2072
|
-
price
|
|
2196
|
+
name: string;
|
|
2197
|
+
price: {
|
|
2073
2198
|
amount: number;
|
|
2074
2199
|
currency: string;
|
|
2075
|
-
}
|
|
2076
|
-
quantity
|
|
2200
|
+
};
|
|
2201
|
+
quantity: number;
|
|
2202
|
+
wristbandColor: string;
|
|
2203
|
+
accentColor: string;
|
|
2204
|
+
isDark: boolean;
|
|
2205
|
+
glassMode: boolean;
|
|
2206
|
+
cornerRadius: number;
|
|
2207
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
2208
|
+
isVisible: boolean;
|
|
2209
|
+
isActive: boolean;
|
|
2210
|
+
tier: string;
|
|
2211
|
+
_id?: string | undefined;
|
|
2212
|
+
description?: string | undefined;
|
|
2077
2213
|
limits?: {
|
|
2078
|
-
minPerOrder
|
|
2079
|
-
maxPerOrder
|
|
2214
|
+
minPerOrder: number;
|
|
2215
|
+
maxPerOrder: number;
|
|
2080
2216
|
} | undefined;
|
|
2081
|
-
wristbandColor?: string | undefined;
|
|
2082
|
-
accentColor?: string | undefined;
|
|
2083
|
-
isVisible?: boolean | undefined;
|
|
2084
|
-
isActive?: boolean | undefined;
|
|
2085
2217
|
benefits?: string[] | undefined;
|
|
2086
2218
|
}, {
|
|
2087
|
-
|
|
2088
|
-
price
|
|
2219
|
+
name: string;
|
|
2220
|
+
price: {
|
|
2089
2221
|
amount: number;
|
|
2090
2222
|
currency?: string | undefined;
|
|
2091
|
-
}
|
|
2092
|
-
quantity
|
|
2223
|
+
};
|
|
2224
|
+
quantity: number;
|
|
2225
|
+
_id?: string | undefined;
|
|
2226
|
+
description?: string | undefined;
|
|
2093
2227
|
limits?: {
|
|
2094
|
-
minPerOrder
|
|
2095
|
-
maxPerOrder
|
|
2228
|
+
minPerOrder: number;
|
|
2229
|
+
maxPerOrder: number;
|
|
2096
2230
|
} | undefined;
|
|
2097
2231
|
wristbandColor?: string | undefined;
|
|
2098
2232
|
accentColor?: string | undefined;
|
|
2233
|
+
isDark?: boolean | undefined;
|
|
2234
|
+
glassMode?: boolean | undefined;
|
|
2235
|
+
cornerRadius?: number | undefined;
|
|
2236
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
2099
2237
|
isVisible?: boolean | undefined;
|
|
2100
2238
|
isActive?: boolean | undefined;
|
|
2101
2239
|
benefits?: string[] | undefined;
|
|
2240
|
+
tier?: string | undefined;
|
|
2102
2241
|
}>, "many">>;
|
|
2103
2242
|
}, "strip", z.ZodTypeAny, {
|
|
2104
2243
|
eventId: string;
|
|
@@ -2118,20 +2257,27 @@ export declare const publishedEventEditSchema: z.ZodObject<{
|
|
|
2118
2257
|
} | undefined;
|
|
2119
2258
|
highlights?: string[] | undefined;
|
|
2120
2259
|
tickets?: {
|
|
2121
|
-
|
|
2122
|
-
price
|
|
2260
|
+
name: string;
|
|
2261
|
+
price: {
|
|
2123
2262
|
amount: number;
|
|
2124
2263
|
currency: string;
|
|
2125
|
-
}
|
|
2126
|
-
quantity
|
|
2264
|
+
};
|
|
2265
|
+
quantity: number;
|
|
2266
|
+
wristbandColor: string;
|
|
2267
|
+
accentColor: string;
|
|
2268
|
+
isDark: boolean;
|
|
2269
|
+
glassMode: boolean;
|
|
2270
|
+
cornerRadius: number;
|
|
2271
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
2272
|
+
isVisible: boolean;
|
|
2273
|
+
isActive: boolean;
|
|
2274
|
+
tier: string;
|
|
2275
|
+
_id?: string | undefined;
|
|
2276
|
+
description?: string | undefined;
|
|
2127
2277
|
limits?: {
|
|
2128
|
-
minPerOrder
|
|
2129
|
-
maxPerOrder
|
|
2278
|
+
minPerOrder: number;
|
|
2279
|
+
maxPerOrder: number;
|
|
2130
2280
|
} | undefined;
|
|
2131
|
-
wristbandColor?: string | undefined;
|
|
2132
|
-
accentColor?: string | undefined;
|
|
2133
|
-
isVisible?: boolean | undefined;
|
|
2134
|
-
isActive?: boolean | undefined;
|
|
2135
2281
|
benefits?: string[] | undefined;
|
|
2136
2282
|
}[] | undefined;
|
|
2137
2283
|
languages?: string[] | undefined;
|
|
@@ -2153,21 +2299,28 @@ export declare const publishedEventEditSchema: z.ZodObject<{
|
|
|
2153
2299
|
} | undefined;
|
|
2154
2300
|
highlights?: string[] | undefined;
|
|
2155
2301
|
tickets?: {
|
|
2156
|
-
|
|
2157
|
-
price
|
|
2302
|
+
name: string;
|
|
2303
|
+
price: {
|
|
2158
2304
|
amount: number;
|
|
2159
2305
|
currency?: string | undefined;
|
|
2160
|
-
}
|
|
2161
|
-
quantity
|
|
2306
|
+
};
|
|
2307
|
+
quantity: number;
|
|
2308
|
+
_id?: string | undefined;
|
|
2309
|
+
description?: string | undefined;
|
|
2162
2310
|
limits?: {
|
|
2163
|
-
minPerOrder
|
|
2164
|
-
maxPerOrder
|
|
2311
|
+
minPerOrder: number;
|
|
2312
|
+
maxPerOrder: number;
|
|
2165
2313
|
} | undefined;
|
|
2166
2314
|
wristbandColor?: string | undefined;
|
|
2167
2315
|
accentColor?: string | undefined;
|
|
2316
|
+
isDark?: boolean | undefined;
|
|
2317
|
+
glassMode?: boolean | undefined;
|
|
2318
|
+
cornerRadius?: number | undefined;
|
|
2319
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
2168
2320
|
isVisible?: boolean | undefined;
|
|
2169
2321
|
isActive?: boolean | undefined;
|
|
2170
2322
|
benefits?: string[] | undefined;
|
|
2323
|
+
tier?: string | undefined;
|
|
2171
2324
|
}[] | undefined;
|
|
2172
2325
|
languages?: string[] | undefined;
|
|
2173
2326
|
}>;
|
|
@@ -2203,17 +2356,92 @@ export declare const liveEventEditSchema: z.ZodObject<{
|
|
|
2203
2356
|
}[];
|
|
2204
2357
|
}>>;
|
|
2205
2358
|
tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2206
|
-
_id: z.ZodString
|
|
2207
|
-
|
|
2208
|
-
|
|
2359
|
+
_id: z.ZodOptional<z.ZodString>;
|
|
2360
|
+
name: z.ZodString;
|
|
2361
|
+
description: z.ZodOptional<z.ZodString>;
|
|
2362
|
+
price: z.ZodObject<{
|
|
2363
|
+
amount: z.ZodNumber;
|
|
2364
|
+
currency: z.ZodDefault<z.ZodString>;
|
|
2365
|
+
}, "strip", z.ZodTypeAny, {
|
|
2366
|
+
amount: number;
|
|
2367
|
+
currency: string;
|
|
2368
|
+
}, {
|
|
2369
|
+
amount: number;
|
|
2370
|
+
currency?: string | undefined;
|
|
2371
|
+
}>;
|
|
2372
|
+
quantity: z.ZodNumber;
|
|
2373
|
+
tier: z.ZodDefault<z.ZodString>;
|
|
2374
|
+
benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2375
|
+
wristbandColor: z.ZodDefault<z.ZodString>;
|
|
2376
|
+
accentColor: z.ZodDefault<z.ZodString>;
|
|
2377
|
+
isDark: z.ZodDefault<z.ZodBoolean>;
|
|
2378
|
+
glassMode: z.ZodDefault<z.ZodBoolean>;
|
|
2379
|
+
cornerRadius: z.ZodDefault<z.ZodNumber>;
|
|
2380
|
+
perforationStyle: z.ZodDefault<z.ZodEnum<["solid", "dashed", "dotted"]>>;
|
|
2381
|
+
isVisible: z.ZodDefault<z.ZodBoolean>;
|
|
2382
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
2383
|
+
limits: z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
2384
|
+
minPerOrder: z.ZodNumber;
|
|
2385
|
+
maxPerOrder: z.ZodNumber;
|
|
2386
|
+
}, "strip", z.ZodTypeAny, {
|
|
2387
|
+
minPerOrder: number;
|
|
2388
|
+
maxPerOrder: number;
|
|
2389
|
+
}, {
|
|
2390
|
+
minPerOrder: number;
|
|
2391
|
+
maxPerOrder: number;
|
|
2392
|
+
}>>, {
|
|
2393
|
+
minPerOrder: number;
|
|
2394
|
+
maxPerOrder: number;
|
|
2395
|
+
} | undefined, {
|
|
2396
|
+
minPerOrder: number;
|
|
2397
|
+
maxPerOrder: number;
|
|
2398
|
+
} | undefined>;
|
|
2209
2399
|
}, "strip", z.ZodTypeAny, {
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2400
|
+
name: string;
|
|
2401
|
+
price: {
|
|
2402
|
+
amount: number;
|
|
2403
|
+
currency: string;
|
|
2404
|
+
};
|
|
2405
|
+
quantity: number;
|
|
2406
|
+
wristbandColor: string;
|
|
2407
|
+
accentColor: string;
|
|
2408
|
+
isDark: boolean;
|
|
2409
|
+
glassMode: boolean;
|
|
2410
|
+
cornerRadius: number;
|
|
2411
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
2412
|
+
isVisible: boolean;
|
|
2413
|
+
isActive: boolean;
|
|
2414
|
+
tier: string;
|
|
2415
|
+
_id?: string | undefined;
|
|
2416
|
+
description?: string | undefined;
|
|
2417
|
+
limits?: {
|
|
2418
|
+
minPerOrder: number;
|
|
2419
|
+
maxPerOrder: number;
|
|
2420
|
+
} | undefined;
|
|
2421
|
+
benefits?: string[] | undefined;
|
|
2213
2422
|
}, {
|
|
2214
|
-
|
|
2215
|
-
|
|
2423
|
+
name: string;
|
|
2424
|
+
price: {
|
|
2425
|
+
amount: number;
|
|
2426
|
+
currency?: string | undefined;
|
|
2427
|
+
};
|
|
2428
|
+
quantity: number;
|
|
2429
|
+
_id?: string | undefined;
|
|
2430
|
+
description?: string | undefined;
|
|
2431
|
+
limits?: {
|
|
2432
|
+
minPerOrder: number;
|
|
2433
|
+
maxPerOrder: number;
|
|
2434
|
+
} | undefined;
|
|
2435
|
+
wristbandColor?: string | undefined;
|
|
2436
|
+
accentColor?: string | undefined;
|
|
2437
|
+
isDark?: boolean | undefined;
|
|
2438
|
+
glassMode?: boolean | undefined;
|
|
2439
|
+
cornerRadius?: number | undefined;
|
|
2440
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
2441
|
+
isVisible?: boolean | undefined;
|
|
2216
2442
|
isActive?: boolean | undefined;
|
|
2443
|
+
benefits?: string[] | undefined;
|
|
2444
|
+
tier?: string | undefined;
|
|
2217
2445
|
}>, "many">>;
|
|
2218
2446
|
}, "strip", z.ZodTypeAny, {
|
|
2219
2447
|
eventId: string;
|
|
@@ -2226,9 +2454,28 @@ export declare const liveEventEditSchema: z.ZodObject<{
|
|
|
2226
2454
|
}[];
|
|
2227
2455
|
} | undefined;
|
|
2228
2456
|
tickets?: {
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2457
|
+
name: string;
|
|
2458
|
+
price: {
|
|
2459
|
+
amount: number;
|
|
2460
|
+
currency: string;
|
|
2461
|
+
};
|
|
2462
|
+
quantity: number;
|
|
2463
|
+
wristbandColor: string;
|
|
2464
|
+
accentColor: string;
|
|
2465
|
+
isDark: boolean;
|
|
2466
|
+
glassMode: boolean;
|
|
2467
|
+
cornerRadius: number;
|
|
2468
|
+
perforationStyle: "solid" | "dashed" | "dotted";
|
|
2469
|
+
isVisible: boolean;
|
|
2470
|
+
isActive: boolean;
|
|
2471
|
+
tier: string;
|
|
2472
|
+
_id?: string | undefined;
|
|
2473
|
+
description?: string | undefined;
|
|
2474
|
+
limits?: {
|
|
2475
|
+
minPerOrder: number;
|
|
2476
|
+
maxPerOrder: number;
|
|
2477
|
+
} | undefined;
|
|
2478
|
+
benefits?: string[] | undefined;
|
|
2232
2479
|
}[] | undefined;
|
|
2233
2480
|
liveUpdate?: string | undefined;
|
|
2234
2481
|
}, {
|
|
@@ -2242,9 +2489,28 @@ export declare const liveEventEditSchema: z.ZodObject<{
|
|
|
2242
2489
|
}[];
|
|
2243
2490
|
} | undefined;
|
|
2244
2491
|
tickets?: {
|
|
2245
|
-
|
|
2246
|
-
|
|
2492
|
+
name: string;
|
|
2493
|
+
price: {
|
|
2494
|
+
amount: number;
|
|
2495
|
+
currency?: string | undefined;
|
|
2496
|
+
};
|
|
2497
|
+
quantity: number;
|
|
2498
|
+
_id?: string | undefined;
|
|
2499
|
+
description?: string | undefined;
|
|
2500
|
+
limits?: {
|
|
2501
|
+
minPerOrder: number;
|
|
2502
|
+
maxPerOrder: number;
|
|
2503
|
+
} | undefined;
|
|
2504
|
+
wristbandColor?: string | undefined;
|
|
2505
|
+
accentColor?: string | undefined;
|
|
2506
|
+
isDark?: boolean | undefined;
|
|
2507
|
+
glassMode?: boolean | undefined;
|
|
2508
|
+
cornerRadius?: number | undefined;
|
|
2509
|
+
perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
2510
|
+
isVisible?: boolean | undefined;
|
|
2247
2511
|
isActive?: boolean | undefined;
|
|
2512
|
+
benefits?: string[] | undefined;
|
|
2513
|
+
tier?: string | undefined;
|
|
2248
2514
|
}[] | undefined;
|
|
2249
2515
|
liveUpdate?: string | undefined;
|
|
2250
2516
|
}>;
|
|
@@ -3607,6 +3873,7 @@ export declare const clientGetEventSchema: z.ZodObject<{
|
|
|
3607
3873
|
} & {
|
|
3608
3874
|
_id: z.ZodString;
|
|
3609
3875
|
status: z.ZodDefault<z.ZodEnum<["draft", "pending_approval", "approved", "rejected", "published", "live", "ended", "cancelled"]>>;
|
|
3876
|
+
salesPaused: z.ZodDefault<z.ZodBoolean>;
|
|
3610
3877
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
3611
3878
|
title: z.ZodString;
|
|
3612
3879
|
tagline: z.ZodOptional<z.ZodString>;
|
|
@@ -3933,6 +4200,7 @@ export declare const clientGetEventSchema: z.ZodObject<{
|
|
|
3933
4200
|
} & {
|
|
3934
4201
|
_id: z.ZodString;
|
|
3935
4202
|
status: z.ZodDefault<z.ZodEnum<["draft", "pending_approval", "approved", "rejected", "published", "live", "ended", "cancelled"]>>;
|
|
4203
|
+
salesPaused: z.ZodDefault<z.ZodBoolean>;
|
|
3936
4204
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
3937
4205
|
title: z.ZodString;
|
|
3938
4206
|
tagline: z.ZodOptional<z.ZodString>;
|
|
@@ -4259,6 +4527,7 @@ export declare const clientGetEventSchema: z.ZodObject<{
|
|
|
4259
4527
|
} & {
|
|
4260
4528
|
_id: z.ZodString;
|
|
4261
4529
|
status: z.ZodDefault<z.ZodEnum<["draft", "pending_approval", "approved", "rejected", "published", "live", "ended", "cancelled"]>>;
|
|
4530
|
+
salesPaused: z.ZodDefault<z.ZodBoolean>;
|
|
4262
4531
|
}, z.ZodTypeAny, "passthrough">>;
|
|
4263
4532
|
export declare const draftEventSchema: z.ZodObject<{
|
|
4264
4533
|
tagline: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
@@ -102,11 +102,37 @@ exports.pendingApprovalEditSchema = zod_1.z.object({
|
|
|
102
102
|
media: media_schema_1.mediaSchema.optional(),
|
|
103
103
|
// Can add docs, not remove
|
|
104
104
|
additionalDocuments: zod_1.z.array(document_schema_1.documentSchema).optional(),
|
|
105
|
-
// Can clarify benefits, not change structure
|
|
106
105
|
tickets: zod_1.z.array(zod_1.z.object({
|
|
107
|
-
_id: zod_1.z.string(),
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
107
|
+
name: zod_1.z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
108
|
+
description: zod_1.z.string().max(500).optional(),
|
|
109
|
+
price: zod_1.z.object({
|
|
110
|
+
amount: zod_1.z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
111
|
+
currency: zod_1.z.string().default('BDT')
|
|
112
|
+
}),
|
|
113
|
+
quantity: zod_1.z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
114
|
+
tier: zod_1.z.string().min(1).max(50).default('regular'),
|
|
115
|
+
benefits: zod_1.z.array(zod_1.z.string().max(200)).max(20).optional(),
|
|
116
|
+
wristbandColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
117
|
+
accentColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
118
|
+
isDark: zod_1.z.boolean().default(false),
|
|
119
|
+
glassMode: zod_1.z.boolean().default(false),
|
|
120
|
+
cornerRadius: zod_1.z.number().min(0).max(50).default(32),
|
|
121
|
+
perforationStyle: zod_1.z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
122
|
+
isVisible: zod_1.z.boolean().default(true),
|
|
123
|
+
isActive: zod_1.z.boolean().default(true),
|
|
124
|
+
limits: zod_1.z.object({
|
|
125
|
+
minPerOrder: zod_1.z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
126
|
+
maxPerOrder: zod_1.z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
127
|
+
}).optional().refine((data) => {
|
|
128
|
+
if (!data)
|
|
129
|
+
return true;
|
|
130
|
+
return data.maxPerOrder >= data.minPerOrder;
|
|
131
|
+
}, {
|
|
132
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
133
|
+
path: ['maxPerOrder']
|
|
134
|
+
})
|
|
135
|
+
})).optional(),
|
|
110
136
|
});
|
|
111
137
|
// Approved
|
|
112
138
|
exports.approvedEventEditSchema = zod_1.z.object({
|
|
@@ -176,31 +202,33 @@ exports.publishedEventEditSchema = zod_1.z.object({
|
|
|
176
202
|
media: media_schema_1.mediaSchema.optional(),
|
|
177
203
|
// Ticket updates (complex validation)
|
|
178
204
|
tickets: zod_1.z.array(zod_1.z.object({
|
|
179
|
-
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID'),
|
|
180
|
-
|
|
205
|
+
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
206
|
+
name: zod_1.z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
207
|
+
description: zod_1.z.string().max(500).optional(),
|
|
181
208
|
price: zod_1.z.object({
|
|
182
|
-
amount: zod_1.z.number().min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
209
|
+
amount: zod_1.z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
183
210
|
currency: zod_1.z.string().default('BDT')
|
|
184
|
-
})
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// Can add benefits, not remove
|
|
211
|
+
}),
|
|
212
|
+
quantity: zod_1.z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
213
|
+
tier: zod_1.z.string().min(1).max(50).default('regular'),
|
|
188
214
|
benefits: zod_1.z.array(zod_1.z.string().max(200)).max(20).optional(),
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
215
|
+
wristbandColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
216
|
+
accentColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
217
|
+
isDark: zod_1.z.boolean().default(false),
|
|
218
|
+
glassMode: zod_1.z.boolean().default(false),
|
|
219
|
+
cornerRadius: zod_1.z.number().min(0).max(50).default(32),
|
|
220
|
+
perforationStyle: zod_1.z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
221
|
+
isVisible: zod_1.z.boolean().default(true),
|
|
222
|
+
isActive: zod_1.z.boolean().default(true),
|
|
195
223
|
limits: zod_1.z.object({
|
|
196
|
-
minPerOrder: zod_1.z.number().int().min(1).max(100)
|
|
197
|
-
maxPerOrder: zod_1.z.number().int().min(1).max(100)
|
|
224
|
+
minPerOrder: zod_1.z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
225
|
+
maxPerOrder: zod_1.z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
198
226
|
}).optional().refine((data) => {
|
|
199
227
|
if (!data)
|
|
200
228
|
return true;
|
|
201
229
|
return data.maxPerOrder >= data.minPerOrder;
|
|
202
230
|
}, {
|
|
203
|
-
message: 'Max per order must be
|
|
231
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
204
232
|
path: ['maxPerOrder']
|
|
205
233
|
})
|
|
206
234
|
})).optional(),
|
|
@@ -221,10 +249,36 @@ exports.liveEventEditSchema = zod_1.z.object({
|
|
|
221
249
|
}).optional(),
|
|
222
250
|
// Ticket operational controls
|
|
223
251
|
tickets: zod_1.z.array(zod_1.z.object({
|
|
224
|
-
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID'),
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
252
|
+
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
253
|
+
name: zod_1.z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
254
|
+
description: zod_1.z.string().max(500).optional(),
|
|
255
|
+
price: zod_1.z.object({
|
|
256
|
+
amount: zod_1.z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
257
|
+
currency: zod_1.z.string().default('BDT')
|
|
258
|
+
}),
|
|
259
|
+
quantity: zod_1.z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
260
|
+
tier: zod_1.z.string().min(1).max(50).default('regular'),
|
|
261
|
+
benefits: zod_1.z.array(zod_1.z.string().max(200)).max(20).optional(),
|
|
262
|
+
wristbandColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
263
|
+
accentColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
264
|
+
isDark: zod_1.z.boolean().default(false),
|
|
265
|
+
glassMode: zod_1.z.boolean().default(false),
|
|
266
|
+
cornerRadius: zod_1.z.number().min(0).max(50).default(32),
|
|
267
|
+
perforationStyle: zod_1.z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
268
|
+
isVisible: zod_1.z.boolean().default(true),
|
|
269
|
+
isActive: zod_1.z.boolean().default(true),
|
|
270
|
+
limits: zod_1.z.object({
|
|
271
|
+
minPerOrder: zod_1.z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
272
|
+
maxPerOrder: zod_1.z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
273
|
+
}).optional().refine((data) => {
|
|
274
|
+
if (!data)
|
|
275
|
+
return true;
|
|
276
|
+
return data.maxPerOrder >= data.minPerOrder;
|
|
277
|
+
}, {
|
|
278
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
279
|
+
path: ['maxPerOrder']
|
|
280
|
+
})
|
|
281
|
+
})).optional(),
|
|
228
282
|
});
|
|
229
283
|
// Ended
|
|
230
284
|
exports.endedEventEditSchema = zod_1.z.object({
|
|
@@ -263,6 +317,7 @@ exports.clientGetEventSchema = exports.stepBasicsSchema
|
|
|
263
317
|
.extend({
|
|
264
318
|
_id: zod_1.z.string().regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
|
|
265
319
|
status: zod_1.z.enum(['draft', 'pending_approval', 'approved', 'rejected', 'published', 'live', 'ended', 'cancelled'], { required_error: 'Event status is required' }).default('draft'),
|
|
320
|
+
salesPaused: zod_1.z.boolean().default(false),
|
|
266
321
|
});
|
|
267
322
|
exports.draftEventSchema = exports.submitEventSchema
|
|
268
323
|
.partial()
|
package/package.json
CHANGED
|
@@ -113,11 +113,36 @@ export const pendingApprovalEditSchema = z.object({
|
|
|
113
113
|
// Can add docs, not remove
|
|
114
114
|
additionalDocuments: z.array(documentSchema).optional(),
|
|
115
115
|
|
|
116
|
-
// Can clarify benefits, not change structure
|
|
117
116
|
tickets: z.array(z.object({
|
|
118
|
-
_id: z.string(),
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
118
|
+
name: z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
119
|
+
description: z.string().max(500).optional(),
|
|
120
|
+
price: z.object({
|
|
121
|
+
amount: z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
122
|
+
currency: z.string().default('BDT')
|
|
123
|
+
}),
|
|
124
|
+
quantity: z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
125
|
+
tier: z.string().min(1).max(50).default('regular'),
|
|
126
|
+
benefits: z.array(z.string().max(200)).max(20).optional(),
|
|
127
|
+
wristbandColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
128
|
+
accentColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
129
|
+
isDark: z.boolean().default(false),
|
|
130
|
+
glassMode: z.boolean().default(false),
|
|
131
|
+
cornerRadius: z.number().min(0).max(50).default(32),
|
|
132
|
+
perforationStyle: z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
133
|
+
isVisible: z.boolean().default(true),
|
|
134
|
+
isActive: z.boolean().default(true),
|
|
135
|
+
limits: z.object({
|
|
136
|
+
minPerOrder: z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
137
|
+
maxPerOrder: z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
138
|
+
}).optional().refine((data) => {
|
|
139
|
+
if (!data) return true;
|
|
140
|
+
return data.maxPerOrder >= data.minPerOrder;
|
|
141
|
+
}, {
|
|
142
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
143
|
+
path: ['maxPerOrder']
|
|
144
|
+
})
|
|
145
|
+
})).optional(),
|
|
121
146
|
});
|
|
122
147
|
|
|
123
148
|
// Approved
|
|
@@ -193,35 +218,32 @@ export const publishedEventEditSchema = z.object({
|
|
|
193
218
|
|
|
194
219
|
// Ticket updates (complex validation)
|
|
195
220
|
tickets: z.array(z.object({
|
|
196
|
-
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID'),
|
|
197
|
-
|
|
198
|
-
|
|
221
|
+
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
222
|
+
name: z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
223
|
+
description: z.string().max(500).optional(),
|
|
199
224
|
price: z.object({
|
|
200
|
-
amount: z.number().min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
225
|
+
amount: z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
201
226
|
currency: z.string().default('BDT')
|
|
202
|
-
})
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
quantity: z.number().int('Quantity must be an integer').min(1, 'Quantity must be at least 1').max(100000, 'Quantity exceeds maximum').optional(),
|
|
206
|
-
|
|
207
|
-
// Can add benefits, not remove
|
|
227
|
+
}),
|
|
228
|
+
quantity: z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
229
|
+
tier: z.string().min(1).max(50).default('regular'),
|
|
208
230
|
benefits: z.array(z.string().max(200)).max(20).optional(),
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
231
|
+
wristbandColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
232
|
+
accentColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
233
|
+
isDark: z.boolean().default(false),
|
|
234
|
+
glassMode: z.boolean().default(false),
|
|
235
|
+
cornerRadius: z.number().min(0).max(50).default(32),
|
|
236
|
+
perforationStyle: z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
237
|
+
isVisible: z.boolean().default(true),
|
|
238
|
+
isActive: z.boolean().default(true),
|
|
217
239
|
limits: z.object({
|
|
218
|
-
minPerOrder: z.number().int().min(1).max(100)
|
|
219
|
-
maxPerOrder: z.number().int().min(1).max(100)
|
|
240
|
+
minPerOrder: z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
241
|
+
maxPerOrder: z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
220
242
|
}).optional().refine((data) => {
|
|
221
243
|
if (!data) return true;
|
|
222
|
-
return data.maxPerOrder
|
|
244
|
+
return data.maxPerOrder >= data.minPerOrder;
|
|
223
245
|
}, {
|
|
224
|
-
message: 'Max per order must be
|
|
246
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
225
247
|
path: ['maxPerOrder']
|
|
226
248
|
})
|
|
227
249
|
})).optional(),
|
|
@@ -246,10 +268,35 @@ export const liveEventEditSchema = z.object({
|
|
|
246
268
|
|
|
247
269
|
// Ticket operational controls
|
|
248
270
|
tickets: z.array(z.object({
|
|
249
|
-
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID'),
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
271
|
+
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Invalid ticket ID').optional(), // Undefined = new tier
|
|
272
|
+
name: z.string({ required_error: 'Ticket name is required' }).min(1).max(100),
|
|
273
|
+
description: z.string().max(500).optional(),
|
|
274
|
+
price: z.object({
|
|
275
|
+
amount: z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
|
|
276
|
+
currency: z.string().default('BDT')
|
|
277
|
+
}),
|
|
278
|
+
quantity: z.number({ required_error: 'Ticket quantity is required' }).int('Quantity must be an integer').min(1, 'Ticket quantity must be at least 1').max(100000, 'Quantity exceeds maximum'),
|
|
279
|
+
tier: z.string().min(1).max(50).default('regular'),
|
|
280
|
+
benefits: z.array(z.string().max(200)).max(20).optional(),
|
|
281
|
+
wristbandColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
282
|
+
accentColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').default('#4f46e5'),
|
|
283
|
+
isDark: z.boolean().default(false),
|
|
284
|
+
glassMode: z.boolean().default(false),
|
|
285
|
+
cornerRadius: z.number().min(0).max(50).default(32),
|
|
286
|
+
perforationStyle: z.enum(['solid', 'dashed', 'dotted']).default('solid'),
|
|
287
|
+
isVisible: z.boolean().default(true),
|
|
288
|
+
isActive: z.boolean().default(true),
|
|
289
|
+
limits: z.object({
|
|
290
|
+
minPerOrder: z.number({ required_error: 'Min per order is required' }).int().min(1, 'Min per order must be at least 1').max(100),
|
|
291
|
+
maxPerOrder: z.number({ required_error: 'Max per order is required' }).int().min(1, 'Max per order must be at least 1').max(100)
|
|
292
|
+
}).optional().refine((data) => {
|
|
293
|
+
if (!data) return true;
|
|
294
|
+
return data.maxPerOrder >= data.minPerOrder;
|
|
295
|
+
}, {
|
|
296
|
+
message: 'Max per order must be greater than or equal to min per order',
|
|
297
|
+
path: ['maxPerOrder']
|
|
298
|
+
})
|
|
299
|
+
})).optional(),
|
|
253
300
|
});
|
|
254
301
|
|
|
255
302
|
// Ended
|
|
@@ -294,6 +341,7 @@ export const clientGetEventSchema = stepBasicsSchema
|
|
|
294
341
|
.extend({
|
|
295
342
|
_id: z.string().regex(/^[0-9a-fA-F]{24}$/, 'Event not found'),
|
|
296
343
|
status: z.enum(['draft', 'pending_approval', 'approved', 'rejected', 'published', 'live', 'ended', 'cancelled'], { required_error: 'Event status is required' }).default('draft'),
|
|
344
|
+
salesPaused: z.boolean().default(false),
|
|
297
345
|
});
|
|
298
346
|
|
|
299
347
|
export const draftEventSchema = submitEventSchema
|