@mac777/project-pinecone-schema 1.0.15 → 1.1.1

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.
@@ -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
- _id: string;
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
- _id: string;
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
- _id: string;
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
- _id: string;
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,47 +2152,92 @@ 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
- price: z.ZodOptional<z.ZodNumber>;
2039
- quantity: z.ZodOptional<z.ZodNumber>;
2155
+ _id: z.ZodOptional<z.ZodString>;
2156
+ name: z.ZodString;
2157
+ description: z.ZodOptional<z.ZodString>;
2158
+ price: z.ZodObject<{
2159
+ amount: z.ZodNumber;
2160
+ currency: z.ZodDefault<z.ZodString>;
2161
+ }, "strip", z.ZodTypeAny, {
2162
+ amount: number;
2163
+ currency: string;
2164
+ }, {
2165
+ amount: number;
2166
+ currency?: string | undefined;
2167
+ }>;
2168
+ quantity: z.ZodNumber;
2169
+ tier: z.ZodDefault<z.ZodString>;
2040
2170
  benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2041
- wristbandColor: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2042
- isVisible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2043
- isActive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2044
- limits: z.ZodOptional<z.ZodObject<{
2045
- minPerOrder: z.ZodOptional<z.ZodNumber>;
2046
- maxPerOrder: z.ZodOptional<z.ZodNumber>;
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>;
2179
+ limits: z.ZodEffects<z.ZodOptional<z.ZodObject<{
2180
+ minPerOrder: z.ZodNumber;
2181
+ maxPerOrder: z.ZodNumber;
2047
2182
  }, "strip", z.ZodTypeAny, {
2048
- minPerOrder?: number | undefined;
2049
- maxPerOrder?: number | undefined;
2183
+ minPerOrder: number;
2184
+ maxPerOrder: number;
2050
2185
  }, {
2051
- minPerOrder?: number | undefined;
2052
- maxPerOrder?: number | undefined;
2053
- }>>;
2186
+ minPerOrder: number;
2187
+ maxPerOrder: number;
2188
+ }>>, {
2189
+ minPerOrder: number;
2190
+ maxPerOrder: number;
2191
+ } | undefined, {
2192
+ minPerOrder: number;
2193
+ maxPerOrder: number;
2194
+ } | undefined>;
2054
2195
  }, "strip", z.ZodTypeAny, {
2055
- _id: string;
2196
+ name: string;
2197
+ price: {
2198
+ amount: number;
2199
+ currency: string;
2200
+ };
2201
+ quantity: number;
2056
2202
  wristbandColor: string;
2203
+ accentColor: string;
2204
+ isDark: boolean;
2205
+ glassMode: boolean;
2206
+ cornerRadius: number;
2207
+ perforationStyle: "solid" | "dashed" | "dotted";
2057
2208
  isVisible: boolean;
2058
2209
  isActive: boolean;
2059
- price?: number | undefined;
2060
- quantity?: number | undefined;
2210
+ tier: string;
2211
+ _id?: string | undefined;
2212
+ description?: string | undefined;
2061
2213
  limits?: {
2062
- minPerOrder?: number | undefined;
2063
- maxPerOrder?: number | undefined;
2214
+ minPerOrder: number;
2215
+ maxPerOrder: number;
2064
2216
  } | undefined;
2065
2217
  benefits?: string[] | undefined;
2066
2218
  }, {
2067
- _id: string;
2068
- price?: number | undefined;
2069
- quantity?: number | undefined;
2219
+ name: string;
2220
+ price: {
2221
+ amount: number;
2222
+ currency?: string | undefined;
2223
+ };
2224
+ quantity: number;
2225
+ _id?: string | undefined;
2226
+ description?: string | undefined;
2070
2227
  limits?: {
2071
- minPerOrder?: number | undefined;
2072
- maxPerOrder?: number | undefined;
2228
+ minPerOrder: number;
2229
+ maxPerOrder: number;
2073
2230
  } | undefined;
2074
2231
  wristbandColor?: string | undefined;
2232
+ accentColor?: string | undefined;
2233
+ isDark?: boolean | undefined;
2234
+ glassMode?: boolean | undefined;
2235
+ cornerRadius?: number | undefined;
2236
+ perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
2075
2237
  isVisible?: boolean | undefined;
2076
2238
  isActive?: boolean | undefined;
2077
2239
  benefits?: string[] | undefined;
2240
+ tier?: string | undefined;
2078
2241
  }>, "many">>;
2079
2242
  }, "strip", z.ZodTypeAny, {
2080
2243
  eventId: string;
@@ -2094,15 +2257,26 @@ export declare const publishedEventEditSchema: z.ZodObject<{
2094
2257
  } | undefined;
2095
2258
  highlights?: string[] | undefined;
2096
2259
  tickets?: {
2097
- _id: string;
2260
+ name: string;
2261
+ price: {
2262
+ amount: number;
2263
+ currency: string;
2264
+ };
2265
+ quantity: number;
2098
2266
  wristbandColor: string;
2267
+ accentColor: string;
2268
+ isDark: boolean;
2269
+ glassMode: boolean;
2270
+ cornerRadius: number;
2271
+ perforationStyle: "solid" | "dashed" | "dotted";
2099
2272
  isVisible: boolean;
2100
2273
  isActive: boolean;
2101
- price?: number | undefined;
2102
- quantity?: number | undefined;
2274
+ tier: string;
2275
+ _id?: string | undefined;
2276
+ description?: string | undefined;
2103
2277
  limits?: {
2104
- minPerOrder?: number | undefined;
2105
- maxPerOrder?: number | undefined;
2278
+ minPerOrder: number;
2279
+ maxPerOrder: number;
2106
2280
  } | undefined;
2107
2281
  benefits?: string[] | undefined;
2108
2282
  }[] | undefined;
@@ -2125,17 +2299,28 @@ export declare const publishedEventEditSchema: z.ZodObject<{
2125
2299
  } | undefined;
2126
2300
  highlights?: string[] | undefined;
2127
2301
  tickets?: {
2128
- _id: string;
2129
- price?: number | undefined;
2130
- quantity?: number | undefined;
2302
+ name: string;
2303
+ price: {
2304
+ amount: number;
2305
+ currency?: string | undefined;
2306
+ };
2307
+ quantity: number;
2308
+ _id?: string | undefined;
2309
+ description?: string | undefined;
2131
2310
  limits?: {
2132
- minPerOrder?: number | undefined;
2133
- maxPerOrder?: number | undefined;
2311
+ minPerOrder: number;
2312
+ maxPerOrder: number;
2134
2313
  } | undefined;
2135
2314
  wristbandColor?: string | undefined;
2315
+ accentColor?: string | undefined;
2316
+ isDark?: boolean | undefined;
2317
+ glassMode?: boolean | undefined;
2318
+ cornerRadius?: number | undefined;
2319
+ perforationStyle?: "solid" | "dashed" | "dotted" | undefined;
2136
2320
  isVisible?: boolean | undefined;
2137
2321
  isActive?: boolean | undefined;
2138
2322
  benefits?: string[] | undefined;
2323
+ tier?: string | undefined;
2139
2324
  }[] | undefined;
2140
2325
  languages?: string[] | undefined;
2141
2326
  }>;
@@ -2143,35 +2328,189 @@ export declare const liveEventEditSchema: z.ZodObject<{
2143
2328
  eventId: z.ZodString;
2144
2329
  hostId: z.ZodString;
2145
2330
  liveUpdate: z.ZodOptional<z.ZodString>;
2331
+ media: z.ZodOptional<z.ZodObject<{
2332
+ gallery: z.ZodArray<z.ZodObject<{
2333
+ url: z.ZodString;
2334
+ caption: z.ZodOptional<z.ZodString>;
2335
+ order: z.ZodOptional<z.ZodNumber>;
2336
+ }, "strip", z.ZodTypeAny, {
2337
+ url: string;
2338
+ order?: number | undefined;
2339
+ caption?: string | undefined;
2340
+ }, {
2341
+ url: string;
2342
+ order?: number | undefined;
2343
+ caption?: string | undefined;
2344
+ }>, "many">;
2345
+ }, "strip", z.ZodTypeAny, {
2346
+ gallery: {
2347
+ url: string;
2348
+ order?: number | undefined;
2349
+ caption?: string | undefined;
2350
+ }[];
2351
+ }, {
2352
+ gallery: {
2353
+ url: string;
2354
+ order?: number | undefined;
2355
+ caption?: string | undefined;
2356
+ }[];
2357
+ }>>;
2146
2358
  tickets: z.ZodOptional<z.ZodArray<z.ZodObject<{
2147
- _id: z.ZodString;
2148
- quantity: z.ZodOptional<z.ZodNumber>;
2149
- isActive: z.ZodOptional<z.ZodBoolean>;
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>;
2150
2399
  }, "strip", z.ZodTypeAny, {
2151
- _id: string;
2152
- quantity?: number | undefined;
2153
- isActive?: boolean | undefined;
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;
2154
2422
  }, {
2155
- _id: string;
2156
- quantity?: number | undefined;
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;
2157
2442
  isActive?: boolean | undefined;
2443
+ benefits?: string[] | undefined;
2444
+ tier?: string | undefined;
2158
2445
  }>, "many">>;
2159
2446
  }, "strip", z.ZodTypeAny, {
2160
2447
  eventId: string;
2161
2448
  hostId: string;
2449
+ media?: {
2450
+ gallery: {
2451
+ url: string;
2452
+ order?: number | undefined;
2453
+ caption?: string | undefined;
2454
+ }[];
2455
+ } | undefined;
2162
2456
  tickets?: {
2163
- _id: string;
2164
- quantity?: number | undefined;
2165
- isActive?: boolean | undefined;
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;
2166
2479
  }[] | undefined;
2167
2480
  liveUpdate?: string | undefined;
2168
2481
  }, {
2169
2482
  eventId: string;
2170
2483
  hostId: string;
2484
+ media?: {
2485
+ gallery: {
2486
+ url: string;
2487
+ order?: number | undefined;
2488
+ caption?: string | undefined;
2489
+ }[];
2490
+ } | undefined;
2171
2491
  tickets?: {
2172
- _id: string;
2173
- quantity?: number | undefined;
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;
2174
2511
  isActive?: boolean | undefined;
2512
+ benefits?: string[] | undefined;
2513
+ tier?: string | undefined;
2175
2514
  }[] | undefined;
2176
2515
  liveUpdate?: string | undefined;
2177
2516
  }>;
@@ -2179,17 +2518,55 @@ export declare const endedEventEditSchema: z.ZodObject<{
2179
2518
  eventId: z.ZodString;
2180
2519
  hostId: z.ZodString;
2181
2520
  recap: z.ZodOptional<z.ZodString>;
2182
- eventPhotos: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2521
+ media: z.ZodOptional<z.ZodObject<{
2522
+ gallery: z.ZodArray<z.ZodObject<{
2523
+ url: z.ZodString;
2524
+ caption: z.ZodOptional<z.ZodString>;
2525
+ order: z.ZodOptional<z.ZodNumber>;
2526
+ }, "strip", z.ZodTypeAny, {
2527
+ url: string;
2528
+ order?: number | undefined;
2529
+ caption?: string | undefined;
2530
+ }, {
2531
+ url: string;
2532
+ order?: number | undefined;
2533
+ caption?: string | undefined;
2534
+ }>, "many">;
2535
+ }, "strip", z.ZodTypeAny, {
2536
+ gallery: {
2537
+ url: string;
2538
+ order?: number | undefined;
2539
+ caption?: string | undefined;
2540
+ }[];
2541
+ }, {
2542
+ gallery: {
2543
+ url: string;
2544
+ order?: number | undefined;
2545
+ caption?: string | undefined;
2546
+ }[];
2547
+ }>>;
2183
2548
  }, "strip", z.ZodTypeAny, {
2184
2549
  eventId: string;
2185
2550
  hostId: string;
2551
+ media?: {
2552
+ gallery: {
2553
+ url: string;
2554
+ order?: number | undefined;
2555
+ caption?: string | undefined;
2556
+ }[];
2557
+ } | undefined;
2186
2558
  recap?: string | undefined;
2187
- eventPhotos?: string[] | undefined;
2188
2559
  }, {
2189
2560
  eventId: string;
2190
2561
  hostId: string;
2562
+ media?: {
2563
+ gallery: {
2564
+ url: string;
2565
+ order?: number | undefined;
2566
+ caption?: string | undefined;
2567
+ }[];
2568
+ } | undefined;
2191
2569
  recap?: string | undefined;
2192
- eventPhotos?: string[] | undefined;
2193
2570
  }>;
2194
2571
  export declare const submitEventSchema: z.ZodObject<{
2195
2572
  title: 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
- benefits: zod_1.z.array(zod_1.z.string()).optional()
109
- })).optional()
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,22 +202,35 @@ 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(),
180
- // Price change validation happens in controller
181
- price: zod_1.z.number().min(0).optional(),
182
- // Quantity increase only (unless sold = 0)
183
- quantity: zod_1.z.number().min(1).optional(),
184
- // Can add benefits, not remove
185
- benefits: zod_1.z.array(zod_1.z.string()).optional(),
186
- // Operational controls
187
- wristbandColor: zod_1.z.string().optional().default('#000000'),
188
- isVisible: zod_1.z.boolean().optional().default(true),
189
- isActive: zod_1.z.boolean().optional().default(true),
190
- // Cannot change limits if sales exist
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(),
208
+ price: zod_1.z.object({
209
+ amount: zod_1.z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
210
+ currency: zod_1.z.string().default('BDT')
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'),
214
+ benefits: zod_1.z.array(zod_1.z.string().max(200)).max(20).optional(),
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),
191
223
  limits: zod_1.z.object({
192
- minPerOrder: zod_1.z.number().min(1, 'Min per order must be at least 1').optional(),
193
- maxPerOrder: zod_1.z.number().min(1, 'Max per order must be at least 1').optional()
194
- }).optional()
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)
226
+ }).optional().refine((data) => {
227
+ if (!data)
228
+ return true;
229
+ return data.maxPerOrder >= data.minPerOrder;
230
+ }, {
231
+ message: 'Max per order must be greater than or equal to min per order',
232
+ path: ['maxPerOrder']
233
+ })
195
234
  })).optional(),
196
235
  });
197
236
  // Live
@@ -199,21 +238,62 @@ exports.liveEventEditSchema = zod_1.z.object({
199
238
  eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
200
239
  hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
201
240
  // Live update only
202
- liveUpdate: zod_1.z.string().max(500, 'Live update cannot exceed 500 characters').optional(),
241
+ liveUpdate: zod_1.z.string().min(1).max(500, 'Live update cannot exceed 500 characters').optional(),
242
+ // Gallery updates (can add event photos)
243
+ media: zod_1.z.object({
244
+ gallery: zod_1.z.array(zod_1.z.object({
245
+ url: zod_1.z.string().url('Invalid image URL'),
246
+ caption: zod_1.z.string().max(200).optional(),
247
+ order: zod_1.z.number().int().min(0).optional()
248
+ })).max(50, 'Cannot have more than 50 gallery images')
249
+ }).optional(),
203
250
  // Ticket operational controls
204
251
  tickets: zod_1.z.array(zod_1.z.object({
205
- _id: zod_1.z.string(),
206
- quantity: zod_1.z.number().min(1).optional(), // Increase only
207
- isActive: zod_1.z.boolean().optional() // Pause sales
208
- })).optional()
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(),
209
282
  });
210
283
  // Ended
211
284
  exports.endedEventEditSchema = zod_1.z.object({
212
285
  eventId: zod_1.z.string({ required_error: 'Event not found' }).regex(/^[0-9a-fA-F]{24}$/),
213
286
  hostId: zod_1.z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
214
287
  // Post-event content
215
- recap: zod_1.z.string().max(2000, 'Recap cannot exceed 2000 characters').optional(),
216
- eventPhotos: zod_1.z.array(zod_1.z.string()).max(20, 'Cannot have more than 20 event photos').optional()
288
+ recap: zod_1.z.string().min(10, 'Recap must be at least 10 characters').max(2000, 'Recap cannot exceed 2000 characters').optional(),
289
+ // Event photos (gallery)
290
+ media: zod_1.z.object({
291
+ gallery: zod_1.z.array(zod_1.z.object({
292
+ url: zod_1.z.string().url('Invalid image URL'),
293
+ caption: zod_1.z.string().max(200).optional(),
294
+ order: zod_1.z.number().int().min(0).optional()
295
+ })).max(50, 'Cannot have more than 50 event photos')
296
+ }).optional()
217
297
  });
218
298
  // =============================================================================
219
299
  // COMPOSITE SCHEMAS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mac777/project-pinecone-schema",
3
- "version": "1.0.15",
3
+ "version": "1.1.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -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
- benefits: z.array(z.string()).optional()
120
- })).optional()
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,27 +218,34 @@ export const publishedEventEditSchema = z.object({
193
218
 
194
219
  // Ticket updates (complex validation)
195
220
  tickets: z.array(z.object({
196
- _id: z.string(),
197
-
198
- // Price change validation happens in controller
199
- price: z.number().min(0).optional(),
200
-
201
- // Quantity increase only (unless sold = 0)
202
- quantity: z.number().min(1).optional(),
203
-
204
- // Can add benefits, not remove
205
- benefits: z.array(z.string()).optional(),
206
-
207
- // Operational controls
208
- wristbandColor: z.string().optional().default('#000000'),
209
- isVisible: z.boolean().optional().default(true),
210
- isActive: z.boolean().optional().default(true),
211
-
212
- // Cannot change limits if sales exist
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(),
224
+ price: z.object({
225
+ amount: z.number({ required_error: 'Ticket price amount is required' }).min(0, 'Price cannot be negative').max(1000000, 'Price exceeds maximum'),
226
+ currency: z.string().default('BDT')
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'),
230
+ benefits: z.array(z.string().max(200)).max(20).optional(),
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),
213
239
  limits: z.object({
214
- minPerOrder: z.number().min(1, 'Min per order must be at least 1').optional(),
215
- maxPerOrder: z.number().min(1, 'Max per order must be at least 1').optional()
216
- }).optional()
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)
242
+ }).optional().refine((data) => {
243
+ if (!data) return true;
244
+ return data.maxPerOrder >= data.minPerOrder;
245
+ }, {
246
+ message: 'Max per order must be greater than or equal to min per order',
247
+ path: ['maxPerOrder']
248
+ })
217
249
  })).optional(),
218
250
  });
219
251
 
@@ -223,14 +255,48 @@ export const liveEventEditSchema = z.object({
223
255
  hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
224
256
 
225
257
  // Live update only
226
- liveUpdate: z.string().max(500, 'Live update cannot exceed 500 characters').optional(),
258
+ liveUpdate: z.string().min(1).max(500, 'Live update cannot exceed 500 characters').optional(),
259
+
260
+ // Gallery updates (can add event photos)
261
+ media: z.object({
262
+ gallery: z.array(z.object({
263
+ url: z.string().url('Invalid image URL'),
264
+ caption: z.string().max(200).optional(),
265
+ order: z.number().int().min(0).optional()
266
+ })).max(50, 'Cannot have more than 50 gallery images')
267
+ }).optional(),
227
268
 
228
269
  // Ticket operational controls
229
270
  tickets: z.array(z.object({
230
- _id: z.string(),
231
- quantity: z.number().min(1).optional(), // Increase only
232
- isActive: z.boolean().optional() // Pause sales
233
- })).optional()
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(),
234
300
  });
235
301
 
236
302
  // Ended
@@ -239,8 +305,16 @@ export const endedEventEditSchema = z.object({
239
305
  hostId: z.string({ required_error: 'Unauthorized' }).regex(/^[0-9a-fA-F]{24}$/),
240
306
 
241
307
  // Post-event content
242
- recap: z.string().max(2000, 'Recap cannot exceed 2000 characters').optional(),
243
- eventPhotos: z.array(z.string()).max(20, 'Cannot have more than 20 event photos').optional()
308
+ recap: z.string().min(10, 'Recap must be at least 10 characters').max(2000, 'Recap cannot exceed 2000 characters').optional(),
309
+
310
+ // Event photos (gallery)
311
+ media: z.object({
312
+ gallery: z.array(z.object({
313
+ url: z.string().url('Invalid image URL'),
314
+ caption: z.string().max(200).optional(),
315
+ order: z.number().int().min(0).optional()
316
+ })).max(50, 'Cannot have more than 50 event photos')
317
+ }).optional()
244
318
  });
245
319
 
246
320
  // =============================================================================