@getmicdrop/venue-calendar 3.8.4 → 4.0.4
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/README.md +700 -661
- package/dist/AirbnbSplitMain-CmX4EMJ2.js +2201 -0
- package/dist/AirbnbSplitMain-CmX4EMJ2.js.map +1 -0
- package/dist/{CarouselView.legacy-G433jD--.js → CarouselView.legacy-B4T9YnUY.js} +11 -10
- package/dist/CarouselView.legacy-B4T9YnUY.js.map +1 -0
- package/dist/CartView-C0wKcLTe.js +1667 -0
- package/dist/CartView-C0wKcLTe.js.map +1 -0
- package/dist/Checkout-DAH2LEv7.js +743 -0
- package/dist/Checkout-DAH2LEv7.js.map +1 -0
- package/dist/{Checkout.legacy-HODJd0ax.js → Checkout.legacy-CsJlr7ac.js} +374 -359
- package/dist/Checkout.legacy-CsJlr7ac.js.map +1 -0
- package/dist/CheckoutMain-CIfRFv_0.js +1403 -0
- package/dist/CheckoutMain-CIfRFv_0.js.map +1 -0
- package/dist/CheckoutTimer-DQFe_RCq.js +34 -0
- package/dist/CheckoutTimer-DQFe_RCq.js.map +1 -0
- package/dist/CollectionView-RKiSB7Gj.js +142 -0
- package/dist/CollectionView-RKiSB7Gj.js.map +1 -0
- package/dist/{CollectionView.legacy-CmNcGUzq.js → CollectionView.legacy-CHiKdISC.js} +25 -24
- package/dist/CollectionView.legacy-CHiKdISC.js.map +1 -0
- package/dist/EventDetailsView-BFXXDR_5.js +1187 -0
- package/dist/EventDetailsView-BFXXDR_5.js.map +1 -0
- package/dist/{FeaturedView.legacy-9h2qZMOt.js → FeaturedView.legacy-Bx8r9VRn.js} +15 -15
- package/dist/FeaturedView.legacy-Bx8r9VRn.js.map +1 -0
- package/dist/GalleryCard-UVhZwNEr.js +92 -0
- package/dist/GalleryCard-UVhZwNEr.js.map +1 -0
- package/dist/{GalleryView.legacy-DiA_IVST.js → GalleryView.legacy-CYYCS-Ik.js} +18 -17
- package/dist/GalleryView.legacy-CYYCS-Ik.js.map +1 -0
- package/dist/{GroupedListView.legacy-Bo-kep9X.js → GroupedListView.legacy-_lpo2UrM.js} +25 -25
- package/dist/GroupedListView.legacy-_lpo2UrM.js.map +1 -0
- package/dist/Heading-AFd3o0xt.js +44 -0
- package/dist/Heading-AFd3o0xt.js.map +1 -0
- package/dist/OrderSummarySkeleton-dDKUH741.js +16 -0
- package/dist/OrderSummarySkeleton-dDKUH741.js.map +1 -0
- package/dist/SeriesPage-CFQLBhkC.js +56 -0
- package/dist/SeriesPage-CFQLBhkC.js.map +1 -0
- package/dist/SeriesPage.legacy-C-hADRCm.js +195 -0
- package/dist/SeriesPage.legacy-C-hADRCm.js.map +1 -0
- package/dist/Success-B_q1DLLZ.js +715 -0
- package/dist/Success-B_q1DLLZ.js.map +1 -0
- package/dist/Success.legacy-DU4ReWah.js +195 -0
- package/dist/Success.legacy-DU4ReWah.js.map +1 -0
- package/dist/Text-CXR2fhx6.js +54 -0
- package/dist/Text-CXR2fhx6.js.map +1 -0
- package/dist/{VenueCalendar-DkyugLs1.js → VenueCalendar-BkiDPwSu.js} +11242 -21624
- package/dist/VenueCalendar-BkiDPwSu.js.map +1 -0
- package/dist/ViewTicketsEmbed-Lh-WqskW.js +2038 -0
- package/dist/ViewTicketsEmbed-Lh-WqskW.js.map +1 -0
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js +7 -0
- package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js.map +1 -0
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.cjs.map +1 -1
- package/dist/api/api.mjs +511 -279
- package/dist/api/api.mjs.map +1 -1
- package/dist/api/client.d.ts +3 -33
- package/dist/api/cta.d.ts +38 -0
- package/dist/api/events.d.ts +3 -1
- package/dist/api/gift-cards.d.ts +88 -0
- package/dist/api/index.d.ts +6 -0
- package/dist/api/types.d.ts +353 -349
- package/dist/api/waitlist.d.ts +23 -0
- package/dist/colors-BZoMuXdh.js.map +1 -1
- package/dist/labels-BJ37eSuH.js +1351 -0
- package/dist/labels-BJ37eSuH.js.map +1 -0
- package/dist/seo/HostSeoController.d.ts +9 -1
- package/dist/seo/seo.cjs +1 -1
- package/dist/seo/seo.cjs.map +1 -1
- package/dist/seo/seo.mjs +53 -50
- package/dist/seo/seo.mjs.map +1 -1
- package/dist/seo/types.d.ts +137 -136
- package/dist/transform-C3MxXi4m.js +218 -0
- package/dist/transform-C3MxXi4m.js.map +1 -0
- package/dist/types/index.d.ts +387 -387
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +36 -28
- package/dist/venue-calendar.es.js.map +1 -1
- package/dist/venue-calendar.iife.js +43 -43
- package/dist/venue-calendar.iife.js.map +1 -1
- package/dist/venue-calendar.umd.js +40 -40
- package/dist/venue-calendar.umd.js.map +1 -1
- package/package.json +44 -6
- package/src/lib/theme.js +13 -0
- package/dist/CarouselView.legacy-G433jD--.js.map +0 -1
- package/dist/Checkout.legacy-HODJd0ax.js.map +0 -1
- package/dist/CollectionView.legacy-CmNcGUzq.js.map +0 -1
- package/dist/FeaturedView.legacy-9h2qZMOt.js.map +0 -1
- package/dist/GalleryView.legacy-DiA_IVST.js.map +0 -1
- package/dist/GroupedListView.legacy-Bo-kep9X.js.map +0 -1
- package/dist/SeriesPage.legacy-BjDBPDcq.js +0 -190
- package/dist/SeriesPage.legacy-BjDBPDcq.js.map +0 -1
- package/dist/Success.legacy-D86LAPHq.js +0 -194
- package/dist/Success.legacy-D86LAPHq.js.map +0 -1
- package/dist/VenueCalendar-DkyugLs1.js.map +0 -1
package/dist/api/types.d.ts
CHANGED
|
@@ -1,349 +1,353 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Types for MicDrop Public Checkout API
|
|
3
|
-
*
|
|
4
|
-
* These types define the shape of API requests and responses
|
|
5
|
-
* for the public checkout flow (no authentication required).
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// Payment & Orders
|
|
10
|
-
// ============================================================================
|
|
11
|
-
|
|
12
|
-
export interface PaymentIntentRequest {
|
|
13
|
-
IP?: string;
|
|
14
|
-
productQuantities: Record<string | number, number>;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface PaymentIntentResponse {
|
|
18
|
-
client_secret: string;
|
|
19
|
-
amount: number;
|
|
20
|
-
amount_total: number;
|
|
21
|
-
tax_amount_exclusive?: number;
|
|
22
|
-
service_fee?: number;
|
|
23
|
-
discount?: number;
|
|
24
|
-
gift_card_amount?: number;
|
|
25
|
-
gift_card_code?: string;
|
|
26
|
-
stripe_publishable_key?: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface CompleteReservationResponse {
|
|
30
|
-
success: boolean;
|
|
31
|
-
message?: string;
|
|
32
|
-
error?: string;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface CancelReservationResponse {
|
|
36
|
-
success: boolean;
|
|
37
|
-
message?: string;
|
|
38
|
-
error?: string;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface CreateOrderRequest {
|
|
42
|
-
eventId: string | number;
|
|
43
|
-
promoCode?: string;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface CreateOrderResponse {
|
|
47
|
-
uuid: string;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface ValidatePaymentRequest {
|
|
51
|
-
id: string;
|
|
52
|
-
paymentIntentId: string;
|
|
53
|
-
tickets: Record<string | number, number>;
|
|
54
|
-
firstName: string;
|
|
55
|
-
lastName: string;
|
|
56
|
-
email: string;
|
|
57
|
-
paymentMethod: string;
|
|
58
|
-
mailingList?: boolean;
|
|
59
|
-
saleType?: string;
|
|
60
|
-
attendees?: AttendeeInfo[];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export interface AttendeeInfo {
|
|
64
|
-
ticketId: string | number;
|
|
65
|
-
firstName: string;
|
|
66
|
-
lastName: string;
|
|
67
|
-
email: string;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface ValidatePaymentResponse {
|
|
71
|
-
success: boolean;
|
|
72
|
-
status: string;
|
|
73
|
-
orderUUID?: string;
|
|
74
|
-
error?: string;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// ============================================================================
|
|
78
|
-
// Session Management
|
|
79
|
-
// ============================================================================
|
|
80
|
-
|
|
81
|
-
export interface ExtendSessionRequest {
|
|
82
|
-
orderUuid: string;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface ExtendSessionResponse {
|
|
86
|
-
success: boolean;
|
|
87
|
-
newExpiryTime?: string;
|
|
88
|
-
remainingExtensions?: number;
|
|
89
|
-
error?: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export interface SessionStatus {
|
|
93
|
-
expiresAt?: string;
|
|
94
|
-
extensionCount?: number;
|
|
95
|
-
remainingExtensions?: number;
|
|
96
|
-
canExtend?: boolean;
|
|
97
|
-
reservationCount?: number;
|
|
98
|
-
error?: string;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// ============================================================================
|
|
102
|
-
// Promo Codes
|
|
103
|
-
// ============================================================================
|
|
104
|
-
|
|
105
|
-
export interface PromoValidationResponse {
|
|
106
|
-
valid: boolean;
|
|
107
|
-
revealHiddenTickets?: boolean;
|
|
108
|
-
revealTicketIds?: number[];
|
|
109
|
-
provideDiscount?: boolean;
|
|
110
|
-
discountType?: 'percentage' | 'fixed';
|
|
111
|
-
amount?: number;
|
|
112
|
-
code?: string;
|
|
113
|
-
error?: string;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export interface HasPromoCodesResponse {
|
|
117
|
-
hasPromoCodes: boolean;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// ============================================================================
|
|
121
|
-
// Orders
|
|
122
|
-
// ============================================================================
|
|
123
|
-
|
|
124
|
-
export interface Order {
|
|
125
|
-
uuid: string;
|
|
126
|
-
id?: number;
|
|
127
|
-
customerEmail: string;
|
|
128
|
-
customerFirstName?: string;
|
|
129
|
-
customerLastName?: string;
|
|
130
|
-
status: string;
|
|
131
|
-
totalAmount: number;
|
|
132
|
-
subtotal?: number;
|
|
133
|
-
serviceFeesAmount: number;
|
|
134
|
-
taxAmount: number;
|
|
135
|
-
discount?: number;
|
|
136
|
-
paymentIntentId?: string;
|
|
137
|
-
paymentMethod?: string;
|
|
138
|
-
purchasedTickets: PurchasedTicket[];
|
|
139
|
-
createdAt?: string;
|
|
140
|
-
updatedAt?: string;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export interface PurchasedTicket {
|
|
144
|
-
uuid: string;
|
|
145
|
-
id?: number;
|
|
146
|
-
ticketNumber?: string;
|
|
147
|
-
orderId?: string | number;
|
|
148
|
-
attendeeFirstName?: string;
|
|
149
|
-
attendeeLastName?: string;
|
|
150
|
-
attendeeEmail?: string;
|
|
151
|
-
ticketName: string;
|
|
152
|
-
ticketTypeId?: number;
|
|
153
|
-
purchasePrice: number;
|
|
154
|
-
status?: string;
|
|
155
|
-
checkedIn?: boolean;
|
|
156
|
-
checkedInAt?: string;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// ============================================================================
|
|
160
|
-
// Events
|
|
161
|
-
// ============================================================================
|
|
162
|
-
|
|
163
|
-
export interface Event {
|
|
164
|
-
eventID: number;
|
|
165
|
-
id?: number;
|
|
166
|
-
name: string;
|
|
167
|
-
title?: string;
|
|
168
|
-
slug?: string;
|
|
169
|
-
description?: string;
|
|
170
|
-
date: string;
|
|
171
|
-
startDateTime?: string;
|
|
172
|
-
endDateTime?: string;
|
|
173
|
-
doorsOpenTime?: string;
|
|
174
|
-
timezone?: string;
|
|
175
|
-
venueId?: number;
|
|
176
|
-
venueName?: string;
|
|
177
|
-
venueAddress?: string;
|
|
178
|
-
location?: string;
|
|
179
|
-
imageUrl?: string;
|
|
180
|
-
imageURL?: string;
|
|
181
|
-
status?: string;
|
|
182
|
-
isPublished?: boolean;
|
|
183
|
-
isCancelled?: boolean;
|
|
184
|
-
availableTickets?: AvailableTicket[];
|
|
185
|
-
ticketsAvailable?: number;
|
|
186
|
-
ticketsSold?: number;
|
|
187
|
-
minPrice?: number;
|
|
188
|
-
maxPrice?: number;
|
|
189
|
-
ctaText?: string;
|
|
190
|
-
ctaState?: 'available' | 'sold_out' | 'coming_soon' | 'ended';
|
|
191
|
-
showPerformers?: boolean;
|
|
192
|
-
eventSeriesId?: number;
|
|
193
|
-
seriesInstanceNumber?: number;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
export interface AvailableTicket {
|
|
197
|
-
id: number;
|
|
198
|
-
name: string;
|
|
199
|
-
description?: string;
|
|
200
|
-
price: number;
|
|
201
|
-
quantity: number;
|
|
202
|
-
quantitySold?: number;
|
|
203
|
-
quantityAvailable?: number;
|
|
204
|
-
minPerOrder?: number;
|
|
205
|
-
maxPerOrder?: number;
|
|
206
|
-
saleStartDate?: string;
|
|
207
|
-
saleEndDate?: string;
|
|
208
|
-
isHidden?: boolean;
|
|
209
|
-
revealWithPromoCode?: boolean;
|
|
210
|
-
ticketType?: number; // 0 = GA, 1 = assigned
|
|
211
|
-
sectionId?: number;
|
|
212
|
-
sortOrder?: number;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
export interface EventPerformersResponse {
|
|
216
|
-
performers: Performer[];
|
|
217
|
-
showPerformers: boolean;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export interface Performer {
|
|
221
|
-
id: number;
|
|
222
|
-
displayName: string;
|
|
223
|
-
avatar?: string;
|
|
224
|
-
order?: number;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// ============================================================================
|
|
228
|
-
// Venues
|
|
229
|
-
// ============================================================================
|
|
230
|
-
|
|
231
|
-
export interface Venue {
|
|
232
|
-
id: number;
|
|
233
|
-
name: string;
|
|
234
|
-
slug?: string;
|
|
235
|
-
address?: string;
|
|
236
|
-
googleLocationNameCache?: string;
|
|
237
|
-
city?: string;
|
|
238
|
-
state?: string;
|
|
239
|
-
zipCode?: string;
|
|
240
|
-
country?: string;
|
|
241
|
-
timezone?: string;
|
|
242
|
-
logoUrl?: string;
|
|
243
|
-
serviceFeePercentage?: number;
|
|
244
|
-
serviceFeeCents?: number;
|
|
245
|
-
taxPercentage?: number;
|
|
246
|
-
organizationId?: number;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
// ============================================================================
|
|
250
|
-
// Series
|
|
251
|
-
// ============================================================================
|
|
252
|
-
|
|
253
|
-
export interface SeriesOccurrence {
|
|
254
|
-
eventId: number;
|
|
255
|
-
date: string;
|
|
256
|
-
startDateTime: string;
|
|
257
|
-
endDateTime?: string;
|
|
258
|
-
instanceNumber: number;
|
|
259
|
-
status: string;
|
|
260
|
-
ticketsAvailable?: number;
|
|
261
|
-
ctaState?: string;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
export interface SeriesOccurrencesResponse {
|
|
265
|
-
seriesId: number;
|
|
266
|
-
occurrences: SeriesOccurrence[];
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// ============================================================================
|
|
270
|
-
// Series Page
|
|
271
|
-
// ============================================================================
|
|
272
|
-
|
|
273
|
-
export interface SeriesPageData {
|
|
274
|
-
id: number;
|
|
275
|
-
title: string;
|
|
276
|
-
description: string;
|
|
277
|
-
eventSummary?: string;
|
|
278
|
-
image?: string;
|
|
279
|
-
timeZone: string;
|
|
280
|
-
venue: {
|
|
281
|
-
id: number;
|
|
282
|
-
name: string;
|
|
283
|
-
location?: string;
|
|
284
|
-
googleLocationNameCache?: string;
|
|
285
|
-
faq?: Array<{ question: string; answer: string }> | string;
|
|
286
|
-
disclaimer?: string;
|
|
287
|
-
};
|
|
288
|
-
performers: Array<{
|
|
289
|
-
displayName: string;
|
|
290
|
-
firstName?: string;
|
|
291
|
-
lastName?: string;
|
|
292
|
-
profileImage?: string;
|
|
293
|
-
}>;
|
|
294
|
-
occurrences: Array<{
|
|
295
|
-
id: number;
|
|
296
|
-
slug: string;
|
|
297
|
-
startDateTime: string;
|
|
298
|
-
endDateTime: string;
|
|
299
|
-
ctaState: {
|
|
300
|
-
text: string;
|
|
301
|
-
disabled: boolean;
|
|
302
|
-
reason?: string;
|
|
303
|
-
};
|
|
304
|
-
}>;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// ============================================================================
|
|
308
|
-
// Public Collection
|
|
309
|
-
// ============================================================================
|
|
310
|
-
|
|
311
|
-
export interface PublicCollectionData {
|
|
312
|
-
id: number;
|
|
313
|
-
collectionTitle: string;
|
|
314
|
-
summary?: string;
|
|
315
|
-
description?: string;
|
|
316
|
-
coverImage?: string;
|
|
317
|
-
events: Array<{
|
|
318
|
-
id: number;
|
|
319
|
-
title: string;
|
|
320
|
-
slug?: string;
|
|
321
|
-
startDateTime?: string;
|
|
322
|
-
endDateTime?: string;
|
|
323
|
-
image?: string;
|
|
324
|
-
status?: string;
|
|
325
|
-
venue?: { name: string };
|
|
326
|
-
minPrice?: number;
|
|
327
|
-
}>;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// ============================================================================
|
|
331
|
-
// API Configuration
|
|
332
|
-
// ============================================================================
|
|
333
|
-
|
|
334
|
-
export interface ApiConfig {
|
|
335
|
-
baseUrl?: string;
|
|
336
|
-
timeout?: number;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
1
|
+
/**
|
|
2
|
+
* API Types for MicDrop Public Checkout API
|
|
3
|
+
*
|
|
4
|
+
* These types define the shape of API requests and responses
|
|
5
|
+
* for the public checkout flow (no authentication required).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Payment & Orders
|
|
10
|
+
// ============================================================================
|
|
11
|
+
|
|
12
|
+
export interface PaymentIntentRequest {
|
|
13
|
+
IP?: string;
|
|
14
|
+
productQuantities: Record<string | number, number>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface PaymentIntentResponse {
|
|
18
|
+
client_secret: string;
|
|
19
|
+
amount: number;
|
|
20
|
+
amount_total: number;
|
|
21
|
+
tax_amount_exclusive?: number;
|
|
22
|
+
service_fee?: number;
|
|
23
|
+
discount?: number;
|
|
24
|
+
gift_card_amount?: number;
|
|
25
|
+
gift_card_code?: string;
|
|
26
|
+
stripe_publishable_key?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface CompleteReservationResponse {
|
|
30
|
+
success: boolean;
|
|
31
|
+
message?: string;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface CancelReservationResponse {
|
|
36
|
+
success: boolean;
|
|
37
|
+
message?: string;
|
|
38
|
+
error?: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface CreateOrderRequest {
|
|
42
|
+
eventId: string | number;
|
|
43
|
+
promoCode?: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface CreateOrderResponse {
|
|
47
|
+
uuid: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface ValidatePaymentRequest {
|
|
51
|
+
id: string;
|
|
52
|
+
paymentIntentId: string;
|
|
53
|
+
tickets: Record<string | number, number>;
|
|
54
|
+
firstName: string;
|
|
55
|
+
lastName: string;
|
|
56
|
+
email: string;
|
|
57
|
+
paymentMethod: string;
|
|
58
|
+
mailingList?: boolean;
|
|
59
|
+
saleType?: string;
|
|
60
|
+
attendees?: AttendeeInfo[];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface AttendeeInfo {
|
|
64
|
+
ticketId: string | number;
|
|
65
|
+
firstName: string;
|
|
66
|
+
lastName: string;
|
|
67
|
+
email: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface ValidatePaymentResponse {
|
|
71
|
+
success: boolean;
|
|
72
|
+
status: string;
|
|
73
|
+
orderUUID?: string;
|
|
74
|
+
error?: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Session Management
|
|
79
|
+
// ============================================================================
|
|
80
|
+
|
|
81
|
+
export interface ExtendSessionRequest {
|
|
82
|
+
orderUuid: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ExtendSessionResponse {
|
|
86
|
+
success: boolean;
|
|
87
|
+
newExpiryTime?: string;
|
|
88
|
+
remainingExtensions?: number;
|
|
89
|
+
error?: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface SessionStatus {
|
|
93
|
+
expiresAt?: string;
|
|
94
|
+
extensionCount?: number;
|
|
95
|
+
remainingExtensions?: number;
|
|
96
|
+
canExtend?: boolean;
|
|
97
|
+
reservationCount?: number;
|
|
98
|
+
error?: string;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Promo Codes
|
|
103
|
+
// ============================================================================
|
|
104
|
+
|
|
105
|
+
export interface PromoValidationResponse {
|
|
106
|
+
valid: boolean;
|
|
107
|
+
revealHiddenTickets?: boolean;
|
|
108
|
+
revealTicketIds?: number[];
|
|
109
|
+
provideDiscount?: boolean;
|
|
110
|
+
discountType?: 'percentage' | 'fixed';
|
|
111
|
+
amount?: number;
|
|
112
|
+
code?: string;
|
|
113
|
+
error?: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface HasPromoCodesResponse {
|
|
117
|
+
hasPromoCodes: boolean;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// Orders
|
|
122
|
+
// ============================================================================
|
|
123
|
+
|
|
124
|
+
export interface Order {
|
|
125
|
+
uuid: string;
|
|
126
|
+
id?: number;
|
|
127
|
+
customerEmail: string;
|
|
128
|
+
customerFirstName?: string;
|
|
129
|
+
customerLastName?: string;
|
|
130
|
+
status: string;
|
|
131
|
+
totalAmount: number;
|
|
132
|
+
subtotal?: number;
|
|
133
|
+
serviceFeesAmount: number;
|
|
134
|
+
taxAmount: number;
|
|
135
|
+
discount?: number;
|
|
136
|
+
paymentIntentId?: string;
|
|
137
|
+
paymentMethod?: string;
|
|
138
|
+
purchasedTickets: PurchasedTicket[];
|
|
139
|
+
createdAt?: string;
|
|
140
|
+
updatedAt?: string;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface PurchasedTicket {
|
|
144
|
+
uuid: string;
|
|
145
|
+
id?: number;
|
|
146
|
+
ticketNumber?: string;
|
|
147
|
+
orderId?: string | number;
|
|
148
|
+
attendeeFirstName?: string;
|
|
149
|
+
attendeeLastName?: string;
|
|
150
|
+
attendeeEmail?: string;
|
|
151
|
+
ticketName: string;
|
|
152
|
+
ticketTypeId?: number;
|
|
153
|
+
purchasePrice: number;
|
|
154
|
+
status?: string;
|
|
155
|
+
checkedIn?: boolean;
|
|
156
|
+
checkedInAt?: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// ============================================================================
|
|
160
|
+
// Events
|
|
161
|
+
// ============================================================================
|
|
162
|
+
|
|
163
|
+
export interface Event {
|
|
164
|
+
eventID: number;
|
|
165
|
+
id?: number;
|
|
166
|
+
name: string;
|
|
167
|
+
title?: string;
|
|
168
|
+
slug?: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
date: string;
|
|
171
|
+
startDateTime?: string;
|
|
172
|
+
endDateTime?: string;
|
|
173
|
+
doorsOpenTime?: string;
|
|
174
|
+
timezone?: string;
|
|
175
|
+
venueId?: number;
|
|
176
|
+
venueName?: string;
|
|
177
|
+
venueAddress?: string;
|
|
178
|
+
location?: string;
|
|
179
|
+
imageUrl?: string;
|
|
180
|
+
imageURL?: string;
|
|
181
|
+
status?: string;
|
|
182
|
+
isPublished?: boolean;
|
|
183
|
+
isCancelled?: boolean;
|
|
184
|
+
availableTickets?: AvailableTicket[];
|
|
185
|
+
ticketsAvailable?: number;
|
|
186
|
+
ticketsSold?: number;
|
|
187
|
+
minPrice?: number;
|
|
188
|
+
maxPrice?: number;
|
|
189
|
+
ctaText?: string;
|
|
190
|
+
ctaState?: 'available' | 'sold_out' | 'coming_soon' | 'ended';
|
|
191
|
+
showPerformers?: boolean;
|
|
192
|
+
eventSeriesId?: number;
|
|
193
|
+
seriesInstanceNumber?: number;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface AvailableTicket {
|
|
197
|
+
id: number;
|
|
198
|
+
name: string;
|
|
199
|
+
description?: string;
|
|
200
|
+
price: number;
|
|
201
|
+
quantity: number;
|
|
202
|
+
quantitySold?: number;
|
|
203
|
+
quantityAvailable?: number;
|
|
204
|
+
minPerOrder?: number;
|
|
205
|
+
maxPerOrder?: number;
|
|
206
|
+
saleStartDate?: string;
|
|
207
|
+
saleEndDate?: string;
|
|
208
|
+
isHidden?: boolean;
|
|
209
|
+
revealWithPromoCode?: boolean;
|
|
210
|
+
ticketType?: number; // 0 = GA, 1 = assigned
|
|
211
|
+
sectionId?: number;
|
|
212
|
+
sortOrder?: number;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export interface EventPerformersResponse {
|
|
216
|
+
performers: Performer[];
|
|
217
|
+
showPerformers: boolean;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface Performer {
|
|
221
|
+
id: number;
|
|
222
|
+
displayName: string;
|
|
223
|
+
avatar?: string;
|
|
224
|
+
order?: number;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// ============================================================================
|
|
228
|
+
// Venues
|
|
229
|
+
// ============================================================================
|
|
230
|
+
|
|
231
|
+
export interface Venue {
|
|
232
|
+
id: number;
|
|
233
|
+
name: string;
|
|
234
|
+
slug?: string;
|
|
235
|
+
address?: string;
|
|
236
|
+
googleLocationNameCache?: string;
|
|
237
|
+
city?: string;
|
|
238
|
+
state?: string;
|
|
239
|
+
zipCode?: string;
|
|
240
|
+
country?: string;
|
|
241
|
+
timezone?: string;
|
|
242
|
+
logoUrl?: string;
|
|
243
|
+
serviceFeePercentage?: number;
|
|
244
|
+
serviceFeeCents?: number;
|
|
245
|
+
taxPercentage?: number;
|
|
246
|
+
organizationId?: number;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// ============================================================================
|
|
250
|
+
// Series
|
|
251
|
+
// ============================================================================
|
|
252
|
+
|
|
253
|
+
export interface SeriesOccurrence {
|
|
254
|
+
eventId: number;
|
|
255
|
+
date: string;
|
|
256
|
+
startDateTime: string;
|
|
257
|
+
endDateTime?: string;
|
|
258
|
+
instanceNumber: number;
|
|
259
|
+
status: string;
|
|
260
|
+
ticketsAvailable?: number;
|
|
261
|
+
ctaState?: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export interface SeriesOccurrencesResponse {
|
|
265
|
+
seriesId: number;
|
|
266
|
+
occurrences: SeriesOccurrence[];
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// ============================================================================
|
|
270
|
+
// Series Page
|
|
271
|
+
// ============================================================================
|
|
272
|
+
|
|
273
|
+
export interface SeriesPageData {
|
|
274
|
+
id: number;
|
|
275
|
+
title: string;
|
|
276
|
+
description: string;
|
|
277
|
+
eventSummary?: string;
|
|
278
|
+
image?: string;
|
|
279
|
+
timeZone: string;
|
|
280
|
+
venue: {
|
|
281
|
+
id: number;
|
|
282
|
+
name: string;
|
|
283
|
+
location?: string;
|
|
284
|
+
googleLocationNameCache?: string;
|
|
285
|
+
faq?: Array<{ question: string; answer: string }> | string;
|
|
286
|
+
disclaimer?: string;
|
|
287
|
+
};
|
|
288
|
+
performers: Array<{
|
|
289
|
+
displayName: string;
|
|
290
|
+
firstName?: string;
|
|
291
|
+
lastName?: string;
|
|
292
|
+
profileImage?: string;
|
|
293
|
+
}>;
|
|
294
|
+
occurrences: Array<{
|
|
295
|
+
id: number;
|
|
296
|
+
slug: string;
|
|
297
|
+
startDateTime: string;
|
|
298
|
+
endDateTime: string;
|
|
299
|
+
ctaState: {
|
|
300
|
+
text: string;
|
|
301
|
+
disabled: boolean;
|
|
302
|
+
reason?: string;
|
|
303
|
+
};
|
|
304
|
+
}>;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// ============================================================================
|
|
308
|
+
// Public Collection
|
|
309
|
+
// ============================================================================
|
|
310
|
+
|
|
311
|
+
export interface PublicCollectionData {
|
|
312
|
+
id: number;
|
|
313
|
+
collectionTitle: string;
|
|
314
|
+
summary?: string;
|
|
315
|
+
description?: string;
|
|
316
|
+
coverImage?: string;
|
|
317
|
+
events: Array<{
|
|
318
|
+
id: number;
|
|
319
|
+
title: string;
|
|
320
|
+
slug?: string;
|
|
321
|
+
startDateTime?: string;
|
|
322
|
+
endDateTime?: string;
|
|
323
|
+
image?: string;
|
|
324
|
+
status?: string;
|
|
325
|
+
venue?: { name: string };
|
|
326
|
+
minPrice?: number;
|
|
327
|
+
}>;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// ============================================================================
|
|
331
|
+
// API Configuration
|
|
332
|
+
// ============================================================================
|
|
333
|
+
|
|
334
|
+
export interface ApiConfig {
|
|
335
|
+
baseUrl?: string;
|
|
336
|
+
timeout?: number;
|
|
337
|
+
/** Number of additional attempts after the first try (default: 2 = 3 total tries). */
|
|
338
|
+
retries?: number;
|
|
339
|
+
/** Base delay before the first retry; doubles each attempt (default: 500ms). */
|
|
340
|
+
retryDelay?: number;
|
|
341
|
+
onError?: (error: Error) => void;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// ============================================================================
|
|
345
|
+
// Generic API Response
|
|
346
|
+
// ============================================================================
|
|
347
|
+
|
|
348
|
+
export interface ApiResponse<T> {
|
|
349
|
+
success: boolean;
|
|
350
|
+
data?: T;
|
|
351
|
+
error?: string;
|
|
352
|
+
statusCode?: number;
|
|
353
|
+
}
|