@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.
@@ -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,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
- price: z.ZodOptional<z.ZodObject<{
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.ZodOptional<z.ZodNumber>;
2167
+ }>;
2168
+ quantity: z.ZodNumber;
2169
+ tier: z.ZodDefault<z.ZodString>;
2049
2170
  benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2050
- wristbandColor: z.ZodOptional<z.ZodString>;
2051
- accentColor: z.ZodOptional<z.ZodString>;
2052
- isVisible: z.ZodOptional<z.ZodBoolean>;
2053
- isActive: z.ZodOptional<z.ZodBoolean>;
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.ZodOptional<z.ZodNumber>;
2056
- maxPerOrder: z.ZodOptional<z.ZodNumber>;
2180
+ minPerOrder: z.ZodNumber;
2181
+ maxPerOrder: z.ZodNumber;
2057
2182
  }, "strip", z.ZodTypeAny, {
2058
- minPerOrder?: number | undefined;
2059
- maxPerOrder?: number | undefined;
2183
+ minPerOrder: number;
2184
+ maxPerOrder: number;
2060
2185
  }, {
2061
- minPerOrder?: number | undefined;
2062
- maxPerOrder?: number | undefined;
2186
+ minPerOrder: number;
2187
+ maxPerOrder: number;
2063
2188
  }>>, {
2064
- minPerOrder?: number | undefined;
2065
- maxPerOrder?: number | undefined;
2189
+ minPerOrder: number;
2190
+ maxPerOrder: number;
2066
2191
  } | undefined, {
2067
- minPerOrder?: number | undefined;
2068
- maxPerOrder?: number | undefined;
2192
+ minPerOrder: number;
2193
+ maxPerOrder: number;
2069
2194
  } | undefined>;
2070
2195
  }, "strip", z.ZodTypeAny, {
2071
- _id: string;
2072
- price?: {
2196
+ name: string;
2197
+ price: {
2073
2198
  amount: number;
2074
2199
  currency: string;
2075
- } | undefined;
2076
- quantity?: number | undefined;
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?: number | undefined;
2079
- maxPerOrder?: number | undefined;
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
- _id: string;
2088
- price?: {
2219
+ name: string;
2220
+ price: {
2089
2221
  amount: number;
2090
2222
  currency?: string | undefined;
2091
- } | undefined;
2092
- quantity?: number | undefined;
2223
+ };
2224
+ quantity: number;
2225
+ _id?: string | undefined;
2226
+ description?: string | undefined;
2093
2227
  limits?: {
2094
- minPerOrder?: number | undefined;
2095
- maxPerOrder?: number | undefined;
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
- _id: string;
2122
- price?: {
2260
+ name: string;
2261
+ price: {
2123
2262
  amount: number;
2124
2263
  currency: string;
2125
- } | undefined;
2126
- quantity?: number | undefined;
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?: number | undefined;
2129
- maxPerOrder?: number | undefined;
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
- _id: string;
2157
- price?: {
2302
+ name: string;
2303
+ price: {
2158
2304
  amount: number;
2159
2305
  currency?: string | undefined;
2160
- } | undefined;
2161
- quantity?: number | undefined;
2306
+ };
2307
+ quantity: number;
2308
+ _id?: string | undefined;
2309
+ description?: string | undefined;
2162
2310
  limits?: {
2163
- minPerOrder?: number | undefined;
2164
- maxPerOrder?: number | undefined;
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
- quantity: z.ZodOptional<z.ZodNumber>;
2208
- 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>;
2209
2399
  }, "strip", z.ZodTypeAny, {
2210
- _id: string;
2211
- quantity?: number | undefined;
2212
- 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;
2213
2422
  }, {
2214
- _id: string;
2215
- 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;
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
- _id: string;
2230
- quantity?: number | undefined;
2231
- 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;
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
- _id: string;
2246
- 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;
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
- 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,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
- // Price change validation happens in controller
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
- }).optional(),
185
- // Quantity increase only (unless sold = 0)
186
- quantity: zod_1.z.number().int('Quantity must be an integer').min(1, 'Quantity must be at least 1').max(100000, 'Quantity exceeds maximum').optional(),
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
- // Operational controls
190
- wristbandColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').optional(),
191
- accentColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').optional(),
192
- isVisible: zod_1.z.boolean().optional(),
193
- isActive: zod_1.z.boolean().optional(),
194
- // Cannot change limits if sales exist (validated in service)
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).optional(),
197
- maxPerOrder: zod_1.z.number().int().min(1).max(100).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)
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 >= min per order',
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
- quantity: zod_1.z.number().int('Quantity must be an integer').min(1).max(100000).optional(), // Increase only
226
- isActive: zod_1.z.boolean().optional() // Pause sales
227
- })).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(),
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mac777/project-pinecone-schema",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
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,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
- // Price change validation happens in controller
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
- }).optional(),
203
-
204
- // Quantity increase only (unless sold = 0)
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
- // Operational controls
211
- wristbandColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').optional(),
212
- accentColor: z.string().regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid color format').optional(),
213
- isVisible: z.boolean().optional(),
214
- isActive: z.boolean().optional(),
215
-
216
- // Cannot change limits if sales exist (validated in service)
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).optional(),
219
- maxPerOrder: z.number().int().min(1).max(100).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)
220
242
  }).optional().refine((data) => {
221
243
  if (!data) return true;
222
- return data.maxPerOrder! >= data.minPerOrder!;
244
+ return data.maxPerOrder >= data.minPerOrder;
223
245
  }, {
224
- message: 'Max per order must be >= min per order',
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
- quantity: z.number().int('Quantity must be an integer').min(1).max(100000).optional(), // Increase only
251
- isActive: z.boolean().optional() // Pause sales
252
- })).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(),
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