@bash-app/bash-common 30.101.0 → 30.102.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/templates/eventTemplates.d.ts +45 -0
- package/dist/templates/eventTemplates.d.ts.map +1 -0
- package/dist/templates/eventTemplates.js +1191 -0
- package/dist/templates/eventTemplates.js.map +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +112 -1
- package/src/index.ts +3 -0
- package/src/templates/eventTemplates.ts +1253 -0
|
@@ -0,0 +1,1191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Templates for Quick Bash Creation
|
|
3
|
+
*
|
|
4
|
+
* 50+ pre-built templates organized by category to reduce event creation friction.
|
|
5
|
+
* These templates provide default values that users can customize.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// SOCIAL TEMPLATES (10)
|
|
9
|
+
// ============================================================================
|
|
10
|
+
export const socialTemplates = [
|
|
11
|
+
{
|
|
12
|
+
id: 'social-game-night',
|
|
13
|
+
name: 'Game Night',
|
|
14
|
+
slug: 'game-night',
|
|
15
|
+
category: 'Social',
|
|
16
|
+
description: 'Host a fun game night with board games, card games, or video games. Perfect for casual hangouts with friends.',
|
|
17
|
+
suggestedTitle: 'Game Night at [Your Place]',
|
|
18
|
+
suggestedDescription: 'Join us for an evening of fun and friendly competition! Bring your favorite games or try out some new ones. Snacks and drinks provided.',
|
|
19
|
+
defaultCapacity: 12,
|
|
20
|
+
defaultTicketPrice: 0,
|
|
21
|
+
defaultDuration: 180,
|
|
22
|
+
suggestedVibe: 'Casual',
|
|
23
|
+
suggestedDress: 'Casual',
|
|
24
|
+
suggestedEventType: 'GameNight',
|
|
25
|
+
recommendedServices: [],
|
|
26
|
+
tags: ['games', 'social', 'casual', 'friends', 'indoor'],
|
|
27
|
+
isFeatured: true,
|
|
28
|
+
sortOrder: 1,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'social-taco-tuesday',
|
|
32
|
+
name: 'Taco Tuesday',
|
|
33
|
+
slug: 'taco-tuesday',
|
|
34
|
+
category: 'Social',
|
|
35
|
+
description: 'Weekly taco night with friends. Everyone brings their favorite toppings or sides.',
|
|
36
|
+
suggestedTitle: 'Taco Tuesday',
|
|
37
|
+
suggestedDescription: 'It\'s Taco Tuesday! Come hungry and ready for delicious tacos. BYOB and bring a topping to share!',
|
|
38
|
+
defaultCapacity: 15,
|
|
39
|
+
defaultTicketPrice: 0,
|
|
40
|
+
defaultDuration: 150,
|
|
41
|
+
suggestedVibe: 'Casual',
|
|
42
|
+
suggestedDress: 'Casual',
|
|
43
|
+
suggestedEventType: 'Potluck',
|
|
44
|
+
recommendedServices: ['Vendor'],
|
|
45
|
+
tags: ['food', 'weekly', 'casual', 'dinner', 'tacos'],
|
|
46
|
+
sortOrder: 2,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'social-book-club',
|
|
50
|
+
name: 'Book Club Meeting',
|
|
51
|
+
slug: 'book-club',
|
|
52
|
+
category: 'Social',
|
|
53
|
+
description: 'Monthly book club gathering to discuss this month\'s read and enjoy good conversation.',
|
|
54
|
+
suggestedTitle: 'Book Club: [Book Title]',
|
|
55
|
+
suggestedDescription: 'Join us to discuss this month\'s book selection. Coffee and light snacks will be served. All reading levels welcome!',
|
|
56
|
+
defaultCapacity: 10,
|
|
57
|
+
defaultTicketPrice: 0,
|
|
58
|
+
defaultDuration: 120,
|
|
59
|
+
suggestedVibe: 'Calm',
|
|
60
|
+
suggestedDress: 'Casual',
|
|
61
|
+
suggestedEventType: 'BookClubMeeting',
|
|
62
|
+
recommendedServices: [],
|
|
63
|
+
tags: ['books', 'discussion', 'intellectual', 'monthly', 'reading'],
|
|
64
|
+
sortOrder: 3,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'social-coffee-meetup',
|
|
68
|
+
name: 'Coffee Meetup',
|
|
69
|
+
slug: 'coffee-meetup',
|
|
70
|
+
category: 'Social',
|
|
71
|
+
description: 'Casual coffee meetup to catch up with friends or meet new people.',
|
|
72
|
+
suggestedTitle: 'Coffee & Conversation',
|
|
73
|
+
suggestedDescription: 'Let\'s grab coffee and chat! Whether you\'re looking to catch up or make new friends, everyone is welcome.',
|
|
74
|
+
defaultCapacity: 8,
|
|
75
|
+
defaultTicketPrice: 0,
|
|
76
|
+
defaultDuration: 90,
|
|
77
|
+
suggestedVibe: 'Calm',
|
|
78
|
+
suggestedDress: 'Casual',
|
|
79
|
+
suggestedEventType: 'CasualMixer',
|
|
80
|
+
recommendedServices: [],
|
|
81
|
+
tags: ['coffee', 'networking', 'casual', 'morning', 'social'],
|
|
82
|
+
sortOrder: 4,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: 'social-movie-night',
|
|
86
|
+
name: 'Movie Night',
|
|
87
|
+
slug: 'movie-night',
|
|
88
|
+
category: 'Social',
|
|
89
|
+
description: 'Cozy movie night with friends. Pick a theme or vote on the film!',
|
|
90
|
+
suggestedTitle: 'Movie Night: [Movie Name]',
|
|
91
|
+
suggestedDescription: 'Grab your popcorn and settle in for a great movie! We\'ll have snacks, drinks, and comfy seating.',
|
|
92
|
+
defaultCapacity: 15,
|
|
93
|
+
defaultTicketPrice: 0,
|
|
94
|
+
defaultDuration: 180,
|
|
95
|
+
suggestedVibe: 'Calm',
|
|
96
|
+
suggestedDress: 'Casual',
|
|
97
|
+
suggestedEventType: 'MovieNight',
|
|
98
|
+
recommendedServices: [],
|
|
99
|
+
tags: ['movies', 'indoor', 'casual', 'entertainment', 'relaxing'],
|
|
100
|
+
sortOrder: 5,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 'social-wine-tasting',
|
|
104
|
+
name: 'Wine Tasting Night',
|
|
105
|
+
slug: 'wine-tasting',
|
|
106
|
+
category: 'Social',
|
|
107
|
+
description: 'Sample and compare different wines in a relaxed setting. Everyone brings a bottle to share.',
|
|
108
|
+
suggestedTitle: 'Wine Tasting Evening',
|
|
109
|
+
suggestedDescription: 'Join us for an evening of wine tasting! Bring your favorite bottle (or discover a new one). Cheese and crackers provided.',
|
|
110
|
+
defaultCapacity: 12,
|
|
111
|
+
defaultTicketPrice: 0,
|
|
112
|
+
defaultDuration: 180,
|
|
113
|
+
suggestedVibe: 'Calm',
|
|
114
|
+
suggestedDress: 'Business Casual',
|
|
115
|
+
suggestedEventType: 'WineTastingEvent',
|
|
116
|
+
recommendedServices: ['Vendor'],
|
|
117
|
+
tags: ['wine', 'tasting', 'adults', 'sophisticated', 'social'],
|
|
118
|
+
sortOrder: 6,
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: 'social-dinner-party',
|
|
122
|
+
name: 'Dinner Party',
|
|
123
|
+
slug: 'dinner-party',
|
|
124
|
+
category: 'Social',
|
|
125
|
+
description: 'Host an intimate dinner party with good food and great conversation.',
|
|
126
|
+
suggestedTitle: 'Dinner Party at [Location]',
|
|
127
|
+
suggestedDescription: 'Join us for an evening of delicious food and wonderful company. Multi-course dinner with wine pairings.',
|
|
128
|
+
defaultCapacity: 10,
|
|
129
|
+
defaultTicketPrice: 0,
|
|
130
|
+
defaultDuration: 240,
|
|
131
|
+
suggestedVibe: 'Calm',
|
|
132
|
+
suggestedDress: 'Business Casual',
|
|
133
|
+
suggestedEventType: 'ThemedDinnerParty',
|
|
134
|
+
recommendedServices: ['Vendor', 'EventService'],
|
|
135
|
+
tags: ['dinner', 'food', 'intimate', 'hosting', 'evening'],
|
|
136
|
+
sortOrder: 7,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: 'social-brunch',
|
|
140
|
+
name: 'Brunch Gathering',
|
|
141
|
+
slug: 'brunch-gathering',
|
|
142
|
+
category: 'Social',
|
|
143
|
+
description: 'Weekend brunch with friends. Mimosas, pancakes, and good vibes.',
|
|
144
|
+
suggestedTitle: 'Sunday Brunch',
|
|
145
|
+
suggestedDescription: 'Start your weekend right with brunch! We\'ll have all the classics plus bottomless mimosas.',
|
|
146
|
+
defaultCapacity: 12,
|
|
147
|
+
defaultTicketPrice: 0,
|
|
148
|
+
defaultDuration: 150,
|
|
149
|
+
suggestedVibe: 'Casual',
|
|
150
|
+
suggestedDress: 'Casual',
|
|
151
|
+
suggestedEventType: 'BrunchGathering',
|
|
152
|
+
recommendedServices: [],
|
|
153
|
+
tags: ['brunch', 'weekend', 'morning', 'food', 'social'],
|
|
154
|
+
sortOrder: 8,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: 'social-trivia-night',
|
|
158
|
+
name: 'Trivia Night',
|
|
159
|
+
slug: 'trivia-night',
|
|
160
|
+
category: 'Social',
|
|
161
|
+
description: 'Test your knowledge at trivia night! Form teams and compete for bragging rights.',
|
|
162
|
+
suggestedTitle: 'Trivia Night',
|
|
163
|
+
suggestedDescription: 'Think you\'re smart? Prove it! Join us for a night of trivia covering everything from pop culture to history.',
|
|
164
|
+
defaultCapacity: 30,
|
|
165
|
+
defaultTicketPrice: 0,
|
|
166
|
+
defaultDuration: 150,
|
|
167
|
+
suggestedVibe: 'Casual',
|
|
168
|
+
suggestedDress: 'Casual',
|
|
169
|
+
suggestedEventType: 'TriviaNight',
|
|
170
|
+
recommendedServices: ['Entertainment'],
|
|
171
|
+
tags: ['trivia', 'competition', 'teams', 'fun', 'social'],
|
|
172
|
+
sortOrder: 9,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: 'social-potluck',
|
|
176
|
+
name: 'Potluck Dinner',
|
|
177
|
+
slug: 'potluck-dinner',
|
|
178
|
+
category: 'Social',
|
|
179
|
+
description: 'Everyone brings a dish to share. Celebrate diverse cuisines and cooking styles.',
|
|
180
|
+
suggestedTitle: 'Community Potluck',
|
|
181
|
+
suggestedDescription: 'Bring your best dish and an appetite! We\'ll provide plates, utensils, and drinks. Sign up to coordinate dishes.',
|
|
182
|
+
defaultCapacity: 25,
|
|
183
|
+
defaultTicketPrice: 0,
|
|
184
|
+
defaultDuration: 180,
|
|
185
|
+
suggestedVibe: 'Casual',
|
|
186
|
+
suggestedDress: 'Casual',
|
|
187
|
+
suggestedEventType: 'Potluck',
|
|
188
|
+
recommendedServices: [],
|
|
189
|
+
tags: ['food', 'potluck', 'community', 'sharing', 'dinner'],
|
|
190
|
+
sortOrder: 10,
|
|
191
|
+
},
|
|
192
|
+
];
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// PARTY TEMPLATES (10)
|
|
195
|
+
// ============================================================================
|
|
196
|
+
export const partyTemplates = [
|
|
197
|
+
{
|
|
198
|
+
id: 'party-birthday',
|
|
199
|
+
name: 'Birthday Party',
|
|
200
|
+
slug: 'birthday-party',
|
|
201
|
+
category: 'Party',
|
|
202
|
+
description: 'Celebrate another trip around the sun with friends and family!',
|
|
203
|
+
suggestedTitle: '[Name]\'s Birthday Bash',
|
|
204
|
+
suggestedDescription: 'Come celebrate with us! There will be cake, music, and great company. No gifts necessary, just your presence!',
|
|
205
|
+
defaultCapacity: 50,
|
|
206
|
+
defaultTicketPrice: 0,
|
|
207
|
+
defaultDuration: 240,
|
|
208
|
+
suggestedVibe: 'Wild',
|
|
209
|
+
suggestedDress: 'Casual',
|
|
210
|
+
suggestedEventType: 'Birthday',
|
|
211
|
+
recommendedServices: ['Venue', 'Entertainment', 'Vendor'],
|
|
212
|
+
tags: ['birthday', 'celebration', 'cake', 'party', 'milestone'],
|
|
213
|
+
isFeatured: true,
|
|
214
|
+
sortOrder: 1,
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
id: 'party-graduation',
|
|
218
|
+
name: 'Graduation Party',
|
|
219
|
+
slug: 'graduation-party',
|
|
220
|
+
category: 'Party',
|
|
221
|
+
description: 'Celebrate academic achievement with a memorable graduation party.',
|
|
222
|
+
suggestedTitle: 'Graduation Celebration for [Name]',
|
|
223
|
+
suggestedDescription: 'We made it! Join us to celebrate this milestone achievement. Food, drinks, and memories await!',
|
|
224
|
+
defaultCapacity: 75,
|
|
225
|
+
defaultTicketPrice: 0,
|
|
226
|
+
defaultDuration: 300,
|
|
227
|
+
suggestedVibe: 'Wild',
|
|
228
|
+
suggestedDress: 'Business Casual',
|
|
229
|
+
suggestedEventType: 'GraduationParty',
|
|
230
|
+
recommendedServices: ['Venue', 'Vendor', 'Entertainment'],
|
|
231
|
+
tags: ['graduation', 'celebration', 'achievement', 'milestone', 'party'],
|
|
232
|
+
sortOrder: 2,
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
id: 'party-house-party',
|
|
236
|
+
name: 'House Party',
|
|
237
|
+
slug: 'house-party',
|
|
238
|
+
category: 'Party',
|
|
239
|
+
description: 'Classic house party with music, drinks, and good vibes.',
|
|
240
|
+
suggestedTitle: 'House Party at [Location]',
|
|
241
|
+
suggestedDescription: 'Let\'s get together for a good time! BYOB, great music, and even better company.',
|
|
242
|
+
defaultCapacity: 40,
|
|
243
|
+
defaultTicketPrice: 0,
|
|
244
|
+
defaultDuration: 240,
|
|
245
|
+
suggestedVibe: 'Wild',
|
|
246
|
+
suggestedDress: 'Casual',
|
|
247
|
+
suggestedEventType: 'HouseParty',
|
|
248
|
+
recommendedServices: ['Entertainment'],
|
|
249
|
+
tags: ['house', 'party', 'casual', 'drinks', 'music'],
|
|
250
|
+
isFeatured: true,
|
|
251
|
+
sortOrder: 3,
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: 'party-pool-party',
|
|
255
|
+
name: 'Pool Party',
|
|
256
|
+
slug: 'pool-party',
|
|
257
|
+
category: 'Party',
|
|
258
|
+
description: 'Beat the heat with a fun pool party! Swimsuits required.',
|
|
259
|
+
suggestedTitle: 'Summer Pool Party',
|
|
260
|
+
suggestedDescription: 'Dive into summer with us! Bring your swimsuit, sunscreen, and towel. Refreshments and music provided.',
|
|
261
|
+
defaultCapacity: 30,
|
|
262
|
+
defaultTicketPrice: 0,
|
|
263
|
+
defaultDuration: 300,
|
|
264
|
+
suggestedVibe: 'Wild',
|
|
265
|
+
suggestedDress: 'Swimwear',
|
|
266
|
+
suggestedEventType: 'PoolParty',
|
|
267
|
+
recommendedServices: ['Entertainment', 'Vendor'],
|
|
268
|
+
tags: ['pool', 'summer', 'outdoor', 'swimming', 'party'],
|
|
269
|
+
sortOrder: 4,
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
id: 'party-holiday',
|
|
273
|
+
name: 'Holiday Party',
|
|
274
|
+
slug: 'holiday-party',
|
|
275
|
+
category: 'Party',
|
|
276
|
+
description: 'Festive celebration for any holiday. Customize for your favorite!',
|
|
277
|
+
suggestedTitle: '[Holiday] Party',
|
|
278
|
+
suggestedDescription: 'Celebrate the season with us! Festive decorations, themed food, and holiday cheer. Ugly sweaters welcome!',
|
|
279
|
+
defaultCapacity: 50,
|
|
280
|
+
defaultTicketPrice: 0,
|
|
281
|
+
defaultDuration: 240,
|
|
282
|
+
suggestedVibe: 'Wild',
|
|
283
|
+
suggestedDress: 'Festive',
|
|
284
|
+
suggestedEventType: 'HolidayParty',
|
|
285
|
+
recommendedServices: ['Venue', 'Vendor', 'Entertainment'],
|
|
286
|
+
tags: ['holiday', 'festive', 'seasonal', 'celebration', 'party'],
|
|
287
|
+
sortOrder: 5,
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: 'party-halloween',
|
|
291
|
+
name: 'Halloween Party',
|
|
292
|
+
slug: 'halloween-party',
|
|
293
|
+
category: 'Party',
|
|
294
|
+
description: 'Spooky celebration with costumes, decorations, and Halloween treats.',
|
|
295
|
+
suggestedTitle: 'Halloween Costume Party',
|
|
296
|
+
suggestedDescription: 'Get ready to be spooked! Best costume wins a prize. Spooky snacks and terrifying tunes all night.',
|
|
297
|
+
defaultCapacity: 60,
|
|
298
|
+
defaultTicketPrice: 0,
|
|
299
|
+
defaultDuration: 300,
|
|
300
|
+
suggestedVibe: 'Wild',
|
|
301
|
+
suggestedDress: 'Costume',
|
|
302
|
+
suggestedEventType: 'HalloweenParty',
|
|
303
|
+
recommendedServices: ['Venue', 'Entertainment', 'Vendor'],
|
|
304
|
+
tags: ['halloween', 'costume', 'spooky', 'party', 'october'],
|
|
305
|
+
sortOrder: 6,
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
id: 'party-housewarming',
|
|
309
|
+
name: 'Housewarming Party',
|
|
310
|
+
slug: 'housewarming-party',
|
|
311
|
+
category: 'Party',
|
|
312
|
+
description: 'Celebrate your new home with friends and family!',
|
|
313
|
+
suggestedTitle: 'Housewarming Party',
|
|
314
|
+
suggestedDescription: 'We finally moved in! Come see our new place and help us celebrate. Appetizers and drinks provided.',
|
|
315
|
+
defaultCapacity: 40,
|
|
316
|
+
defaultTicketPrice: 0,
|
|
317
|
+
defaultDuration: 240,
|
|
318
|
+
suggestedVibe: 'Casual',
|
|
319
|
+
suggestedDress: 'Casual',
|
|
320
|
+
suggestedEventType: 'HousewarmingParty',
|
|
321
|
+
recommendedServices: [],
|
|
322
|
+
tags: ['housewarming', 'new home', 'celebration', 'party', 'moving'],
|
|
323
|
+
sortOrder: 7,
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
id: 'party-cocktail',
|
|
327
|
+
name: 'Cocktail Party',
|
|
328
|
+
slug: 'cocktail-party',
|
|
329
|
+
category: 'Party',
|
|
330
|
+
description: 'Sophisticated evening with craft cocktails and elegant appetizers.',
|
|
331
|
+
suggestedTitle: 'Cocktail Hour',
|
|
332
|
+
suggestedDescription: 'Join us for an evening of craft cocktails, light bites, and sophisticated company. Semi-formal attire requested.',
|
|
333
|
+
defaultCapacity: 35,
|
|
334
|
+
defaultTicketPrice: 0,
|
|
335
|
+
defaultDuration: 180,
|
|
336
|
+
suggestedVibe: 'Calm',
|
|
337
|
+
suggestedDress: 'Business Casual',
|
|
338
|
+
suggestedEventType: 'CocktailParty',
|
|
339
|
+
recommendedServices: ['Vendor', 'Venue'],
|
|
340
|
+
tags: ['cocktails', 'drinks', 'sophisticated', 'evening', 'party'],
|
|
341
|
+
sortOrder: 8,
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
id: 'party-themed',
|
|
345
|
+
name: 'Themed Costume Party',
|
|
346
|
+
slug: 'themed-costume-party',
|
|
347
|
+
category: 'Party',
|
|
348
|
+
description: 'Pick a theme and dress up! From 80s to casino night, the possibilities are endless.',
|
|
349
|
+
suggestedTitle: '[Theme] Night Party',
|
|
350
|
+
suggestedDescription: 'Dress up according to our theme for a night of fun! Prizes for best costumes. Don\'t forget your camera!',
|
|
351
|
+
defaultCapacity: 50,
|
|
352
|
+
defaultTicketPrice: 0,
|
|
353
|
+
defaultDuration: 240,
|
|
354
|
+
suggestedVibe: 'Wild',
|
|
355
|
+
suggestedDress: 'Costume',
|
|
356
|
+
suggestedEventType: 'CostumeParty_Theme_Based',
|
|
357
|
+
recommendedServices: ['Entertainment', 'Venue'],
|
|
358
|
+
tags: ['themed', 'costume', 'creative', 'party', 'fun'],
|
|
359
|
+
sortOrder: 9,
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
id: 'party-farewell',
|
|
363
|
+
name: 'Farewell Party',
|
|
364
|
+
slug: 'farewell-party',
|
|
365
|
+
category: 'Party',
|
|
366
|
+
description: 'Send off a friend, colleague, or loved one in style.',
|
|
367
|
+
suggestedTitle: 'Farewell Party for [Name]',
|
|
368
|
+
suggestedDescription: 'Join us to wish [Name] well on their next adventure! Share memories and say goodbye over food and drinks.',
|
|
369
|
+
defaultCapacity: 40,
|
|
370
|
+
defaultTicketPrice: 0,
|
|
371
|
+
defaultDuration: 180,
|
|
372
|
+
suggestedVibe: 'Calm',
|
|
373
|
+
suggestedDress: 'Casual',
|
|
374
|
+
suggestedEventType: 'GoingAwayPartyOrFarewell',
|
|
375
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
376
|
+
tags: ['farewell', 'goodbye', 'moving', 'celebration', 'party'],
|
|
377
|
+
sortOrder: 10,
|
|
378
|
+
},
|
|
379
|
+
];
|
|
380
|
+
// ============================================================================
|
|
381
|
+
// CONCERT TEMPLATES (5)
|
|
382
|
+
// ============================================================================
|
|
383
|
+
export const concertTemplates = [
|
|
384
|
+
{
|
|
385
|
+
id: 'concert-small-venue',
|
|
386
|
+
name: 'Small Venue Show',
|
|
387
|
+
slug: 'small-venue-show',
|
|
388
|
+
category: 'Concert',
|
|
389
|
+
description: 'Intimate live music experience in a cozy venue.',
|
|
390
|
+
suggestedTitle: 'Live Music: [Artist Name]',
|
|
391
|
+
suggestedDescription: 'Join us for an intimate night of live music. Limited capacity for an up-close experience with the artist.',
|
|
392
|
+
defaultCapacity: 100,
|
|
393
|
+
defaultTicketPrice: 2000, // $20
|
|
394
|
+
defaultDuration: 180,
|
|
395
|
+
suggestedVibe: 'Wild',
|
|
396
|
+
suggestedDress: 'Casual',
|
|
397
|
+
suggestedEventType: 'LiveBandPerformanceInALocalVenue',
|
|
398
|
+
recommendedServices: ['Venue', 'Entertainment', 'EventService'],
|
|
399
|
+
tags: ['concert', 'live music', 'intimate', 'venue', 'performance'],
|
|
400
|
+
isFeatured: true,
|
|
401
|
+
sortOrder: 1,
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
id: 'concert-house-concert',
|
|
405
|
+
name: 'House Concert',
|
|
406
|
+
slug: 'house-concert',
|
|
407
|
+
category: 'Concert',
|
|
408
|
+
description: 'Bring live music to your living room. Unique, personal experience.',
|
|
409
|
+
suggestedTitle: 'House Concert featuring [Artist]',
|
|
410
|
+
suggestedDescription: 'Experience live music in an intimate home setting. Limited seating, BYOB encouraged.',
|
|
411
|
+
defaultCapacity: 30,
|
|
412
|
+
defaultTicketPrice: 1500, // $15
|
|
413
|
+
defaultDuration: 120,
|
|
414
|
+
suggestedVibe: 'Calm',
|
|
415
|
+
suggestedDress: 'Casual',
|
|
416
|
+
suggestedEventType: 'Concert',
|
|
417
|
+
recommendedServices: ['Entertainment'],
|
|
418
|
+
tags: ['house concert', 'acoustic', 'intimate', 'live music', 'home'],
|
|
419
|
+
sortOrder: 2,
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
id: 'concert-open-mic',
|
|
423
|
+
name: 'Open Mic Night',
|
|
424
|
+
slug: 'open-mic-night',
|
|
425
|
+
category: 'Concert',
|
|
426
|
+
description: 'Platform for local talent to perform. All skill levels welcome!',
|
|
427
|
+
suggestedTitle: 'Open Mic Night',
|
|
428
|
+
suggestedDescription: 'Got talent? Sign up to perform! Musicians, comedians, poets - all acts welcome. Supportive audience guaranteed.',
|
|
429
|
+
defaultCapacity: 75,
|
|
430
|
+
defaultTicketPrice: 500, // $5
|
|
431
|
+
defaultDuration: 180,
|
|
432
|
+
suggestedVibe: 'Casual',
|
|
433
|
+
suggestedDress: 'Casual',
|
|
434
|
+
suggestedEventType: 'OpenMicNight',
|
|
435
|
+
recommendedServices: ['Venue', 'EventService'],
|
|
436
|
+
tags: ['open mic', 'talent', 'performance', 'music', 'comedy'],
|
|
437
|
+
sortOrder: 3,
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
id: 'concert-battle-bands',
|
|
441
|
+
name: 'Battle of the Bands',
|
|
442
|
+
slug: 'battle-of-the-bands',
|
|
443
|
+
category: 'Concert',
|
|
444
|
+
description: 'Local bands compete for the top spot. Audience votes for the winner!',
|
|
445
|
+
suggestedTitle: 'Battle of the Bands',
|
|
446
|
+
suggestedDescription: 'Watch local bands compete for glory! Your vote decides the winner. Prizes for top 3 performers.',
|
|
447
|
+
defaultCapacity: 200,
|
|
448
|
+
defaultTicketPrice: 1500, // $15
|
|
449
|
+
defaultDuration: 300,
|
|
450
|
+
suggestedVibe: 'Wild',
|
|
451
|
+
suggestedDress: 'Casual',
|
|
452
|
+
suggestedEventType: 'Competition',
|
|
453
|
+
recommendedServices: ['Venue', 'Entertainment', 'EventService', 'Sponsor'],
|
|
454
|
+
tags: ['battle', 'bands', 'competition', 'music', 'live'],
|
|
455
|
+
isFeatured: true,
|
|
456
|
+
sortOrder: 4,
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
id: 'concert-karaoke',
|
|
460
|
+
name: 'Karaoke Night',
|
|
461
|
+
slug: 'karaoke-night',
|
|
462
|
+
category: 'Concert',
|
|
463
|
+
description: 'Sing your heart out! Everyone becomes a star at karaoke night.',
|
|
464
|
+
suggestedTitle: 'Karaoke Night',
|
|
465
|
+
suggestedDescription: 'Grab the mic and show off your skills! All songs, all genres, no judgment. Drink specials all night.',
|
|
466
|
+
defaultCapacity: 60,
|
|
467
|
+
defaultTicketPrice: 0,
|
|
468
|
+
defaultDuration: 240,
|
|
469
|
+
suggestedVibe: 'Wild',
|
|
470
|
+
suggestedDress: 'Casual',
|
|
471
|
+
suggestedEventType: 'KaraokeNight',
|
|
472
|
+
recommendedServices: ['Venue', 'Entertainment'],
|
|
473
|
+
tags: ['karaoke', 'singing', 'fun', 'nightlife', 'music'],
|
|
474
|
+
sortOrder: 5,
|
|
475
|
+
},
|
|
476
|
+
];
|
|
477
|
+
// ============================================================================
|
|
478
|
+
// CLASS TEMPLATES (8)
|
|
479
|
+
// ============================================================================
|
|
480
|
+
export const classTemplates = [
|
|
481
|
+
{
|
|
482
|
+
id: 'class-fitness',
|
|
483
|
+
name: 'Fitness Class',
|
|
484
|
+
slug: 'fitness-class',
|
|
485
|
+
category: 'Class',
|
|
486
|
+
description: 'Group workout session. Yoga, HIIT, dance, or your specialty!',
|
|
487
|
+
suggestedTitle: '[Type] Fitness Class',
|
|
488
|
+
suggestedDescription: 'Get moving with us! This class is suitable for all fitness levels. Bring water and a towel.',
|
|
489
|
+
defaultCapacity: 25,
|
|
490
|
+
defaultTicketPrice: 1500, // $15
|
|
491
|
+
defaultDuration: 60,
|
|
492
|
+
suggestedVibe: 'Wild',
|
|
493
|
+
suggestedDress: 'Athletic',
|
|
494
|
+
suggestedEventType: 'FitnessFestival',
|
|
495
|
+
recommendedServices: ['Venue', 'EventService'],
|
|
496
|
+
tags: ['fitness', 'workout', 'health', 'exercise', 'group'],
|
|
497
|
+
isFeatured: true,
|
|
498
|
+
sortOrder: 1,
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
id: 'class-cooking',
|
|
502
|
+
name: 'Cooking Class',
|
|
503
|
+
slug: 'cooking-class',
|
|
504
|
+
category: 'Class',
|
|
505
|
+
description: 'Learn to cook a new dish together. Eat what you make!',
|
|
506
|
+
suggestedTitle: 'Cooking Class: [Cuisine/Dish]',
|
|
507
|
+
suggestedDescription: 'Learn to make [dish] from scratch! All ingredients provided. Take home recipes and full bellies.',
|
|
508
|
+
defaultCapacity: 15,
|
|
509
|
+
defaultTicketPrice: 5000, // $50
|
|
510
|
+
defaultDuration: 150,
|
|
511
|
+
suggestedVibe: 'Calm',
|
|
512
|
+
suggestedDress: 'Casual',
|
|
513
|
+
suggestedEventType: 'CookingCompetition',
|
|
514
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
515
|
+
tags: ['cooking', 'food', 'learning', 'class', 'culinary'],
|
|
516
|
+
sortOrder: 2,
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
id: 'class-art',
|
|
520
|
+
name: 'Art Class',
|
|
521
|
+
slug: 'art-class',
|
|
522
|
+
category: 'Class',
|
|
523
|
+
description: 'Express yourself through art. Painting, pottery, or crafts!',
|
|
524
|
+
suggestedTitle: '[Art Type] Class',
|
|
525
|
+
suggestedDescription: 'Unleash your creativity! All materials provided. No experience necessary - just a willingness to have fun.',
|
|
526
|
+
defaultCapacity: 20,
|
|
527
|
+
defaultTicketPrice: 4000, // $40
|
|
528
|
+
defaultDuration: 120,
|
|
529
|
+
suggestedVibe: 'Calm',
|
|
530
|
+
suggestedDress: 'Casual',
|
|
531
|
+
suggestedEventType: 'ArtAndCraftNight',
|
|
532
|
+
recommendedServices: ['Venue', 'EventService'],
|
|
533
|
+
tags: ['art', 'creative', 'painting', 'craft', 'class'],
|
|
534
|
+
sortOrder: 3,
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
id: 'class-workshop',
|
|
538
|
+
name: 'Skills Workshop',
|
|
539
|
+
slug: 'skills-workshop',
|
|
540
|
+
category: 'Class',
|
|
541
|
+
description: 'Learn a new skill from an expert. Topics vary widely!',
|
|
542
|
+
suggestedTitle: '[Skill] Workshop',
|
|
543
|
+
suggestedDescription: 'Master [skill] in this hands-on workshop. Expert instruction with plenty of practice time.',
|
|
544
|
+
defaultCapacity: 20,
|
|
545
|
+
defaultTicketPrice: 3500, // $35
|
|
546
|
+
defaultDuration: 180,
|
|
547
|
+
suggestedVibe: 'Calm',
|
|
548
|
+
suggestedDress: 'Casual',
|
|
549
|
+
suggestedEventType: 'Other',
|
|
550
|
+
recommendedServices: ['Venue', 'EventService'],
|
|
551
|
+
tags: ['workshop', 'learning', 'skills', 'education', 'hands-on'],
|
|
552
|
+
sortOrder: 4,
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
id: 'class-study-group',
|
|
556
|
+
name: 'Study Group',
|
|
557
|
+
slug: 'study-group',
|
|
558
|
+
category: 'Class',
|
|
559
|
+
description: 'Collaborative study session for students or professionals.',
|
|
560
|
+
suggestedTitle: '[Subject] Study Group',
|
|
561
|
+
suggestedDescription: 'Join fellow learners to tackle [subject] together. Quiet study with optional discussion breaks.',
|
|
562
|
+
defaultCapacity: 10,
|
|
563
|
+
defaultTicketPrice: 0,
|
|
564
|
+
defaultDuration: 180,
|
|
565
|
+
suggestedVibe: 'Calm',
|
|
566
|
+
suggestedDress: 'Casual',
|
|
567
|
+
suggestedEventType: 'Other',
|
|
568
|
+
recommendedServices: [],
|
|
569
|
+
tags: ['study', 'learning', 'education', 'group', 'students'],
|
|
570
|
+
sortOrder: 5,
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
id: 'class-yoga',
|
|
574
|
+
name: 'Yoga Session',
|
|
575
|
+
slug: 'yoga-session',
|
|
576
|
+
category: 'Class',
|
|
577
|
+
description: 'Relax, stretch, and find your center with guided yoga.',
|
|
578
|
+
suggestedTitle: '[Style] Yoga Class',
|
|
579
|
+
suggestedDescription: 'Breathe, stretch, relax. Bring your own mat or use ours. Suitable for all experience levels.',
|
|
580
|
+
defaultCapacity: 20,
|
|
581
|
+
defaultTicketPrice: 2000, // $20
|
|
582
|
+
defaultDuration: 75,
|
|
583
|
+
suggestedVibe: 'Calm',
|
|
584
|
+
suggestedDress: 'Athletic',
|
|
585
|
+
suggestedEventType: 'FitnessFestival',
|
|
586
|
+
recommendedServices: ['Venue'],
|
|
587
|
+
tags: ['yoga', 'wellness', 'relaxation', 'fitness', 'mindfulness'],
|
|
588
|
+
sortOrder: 6,
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
id: 'class-dance',
|
|
592
|
+
name: 'Dance Class',
|
|
593
|
+
slug: 'dance-class',
|
|
594
|
+
category: 'Class',
|
|
595
|
+
description: 'Learn new moves and have fun! All styles and skill levels.',
|
|
596
|
+
suggestedTitle: '[Style] Dance Class',
|
|
597
|
+
suggestedDescription: 'Get ready to move! Learn [style] dance in a fun, judgment-free environment. No partner needed.',
|
|
598
|
+
defaultCapacity: 25,
|
|
599
|
+
defaultTicketPrice: 2500, // $25
|
|
600
|
+
defaultDuration: 90,
|
|
601
|
+
suggestedVibe: 'Wild',
|
|
602
|
+
suggestedDress: 'Athletic',
|
|
603
|
+
suggestedEventType: 'DanceParty',
|
|
604
|
+
recommendedServices: ['Venue', 'Entertainment'],
|
|
605
|
+
tags: ['dance', 'movement', 'fitness', 'fun', 'learning'],
|
|
606
|
+
sortOrder: 7,
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
id: 'class-language',
|
|
610
|
+
name: 'Language Exchange',
|
|
611
|
+
slug: 'language-exchange',
|
|
612
|
+
category: 'Class',
|
|
613
|
+
description: 'Practice speaking a new language with native speakers.',
|
|
614
|
+
suggestedTitle: '[Language] Language Exchange',
|
|
615
|
+
suggestedDescription: 'Practice your [language] skills in a relaxed setting. Native speakers and learners come together.',
|
|
616
|
+
defaultCapacity: 15,
|
|
617
|
+
defaultTicketPrice: 0,
|
|
618
|
+
defaultDuration: 120,
|
|
619
|
+
suggestedVibe: 'Calm',
|
|
620
|
+
suggestedDress: 'Casual',
|
|
621
|
+
suggestedEventType: 'Other',
|
|
622
|
+
recommendedServices: [],
|
|
623
|
+
tags: ['language', 'learning', 'culture', 'conversation', 'education'],
|
|
624
|
+
sortOrder: 8,
|
|
625
|
+
},
|
|
626
|
+
];
|
|
627
|
+
// ============================================================================
|
|
628
|
+
// SPORTS TEMPLATES (7)
|
|
629
|
+
// ============================================================================
|
|
630
|
+
export const sportsTemplates = [
|
|
631
|
+
{
|
|
632
|
+
id: 'sports-pickup-basketball',
|
|
633
|
+
name: 'Pickup Basketball',
|
|
634
|
+
slug: 'pickup-basketball',
|
|
635
|
+
category: 'Sports',
|
|
636
|
+
description: 'Casual basketball game. Just show up and play!',
|
|
637
|
+
suggestedTitle: 'Pickup Basketball',
|
|
638
|
+
suggestedDescription: 'Looking for a game? We\'ll split into teams and run. All skill levels welcome. Bring water!',
|
|
639
|
+
defaultCapacity: 20,
|
|
640
|
+
defaultTicketPrice: 0,
|
|
641
|
+
defaultDuration: 120,
|
|
642
|
+
suggestedVibe: 'Wild',
|
|
643
|
+
suggestedDress: 'Athletic',
|
|
644
|
+
suggestedEventType: 'SportsTournament',
|
|
645
|
+
recommendedServices: [],
|
|
646
|
+
tags: ['basketball', 'sports', 'pickup', 'active', 'outdoor'],
|
|
647
|
+
isFeatured: true,
|
|
648
|
+
sortOrder: 1,
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
id: 'sports-soccer-match',
|
|
652
|
+
name: 'Soccer Match',
|
|
653
|
+
slug: 'soccer-match',
|
|
654
|
+
category: 'Sports',
|
|
655
|
+
description: 'Casual soccer game at the local field or park.',
|
|
656
|
+
suggestedTitle: 'Pickup Soccer',
|
|
657
|
+
suggestedDescription: 'Beautiful game, beautiful day! Join us for casual soccer. All abilities welcome.',
|
|
658
|
+
defaultCapacity: 22,
|
|
659
|
+
defaultTicketPrice: 0,
|
|
660
|
+
defaultDuration: 120,
|
|
661
|
+
suggestedVibe: 'Wild',
|
|
662
|
+
suggestedDress: 'Athletic',
|
|
663
|
+
suggestedEventType: 'SportsTournament',
|
|
664
|
+
recommendedServices: [],
|
|
665
|
+
tags: ['soccer', 'football', 'sports', 'outdoor', 'team'],
|
|
666
|
+
sortOrder: 2,
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
id: 'sports-hiking',
|
|
670
|
+
name: 'Hiking Group',
|
|
671
|
+
slug: 'hiking-group',
|
|
672
|
+
category: 'Sports',
|
|
673
|
+
description: 'Explore nature with a group hike. All fitness levels.',
|
|
674
|
+
suggestedTitle: 'Hiking: [Trail Name]',
|
|
675
|
+
suggestedDescription: 'Join us for a scenic hike! Bring water, snacks, and good shoes. Moderate difficulty, approximately [X] miles.',
|
|
676
|
+
defaultCapacity: 15,
|
|
677
|
+
defaultTicketPrice: 0,
|
|
678
|
+
defaultDuration: 240,
|
|
679
|
+
suggestedVibe: 'Calm',
|
|
680
|
+
suggestedDress: 'Athletic',
|
|
681
|
+
suggestedEventType: 'OutdoorActivity',
|
|
682
|
+
recommendedServices: [],
|
|
683
|
+
tags: ['hiking', 'nature', 'outdoor', 'fitness', 'adventure'],
|
|
684
|
+
isFeatured: true,
|
|
685
|
+
sortOrder: 3,
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
id: 'sports-running-club',
|
|
689
|
+
name: 'Running Club',
|
|
690
|
+
slug: 'running-club',
|
|
691
|
+
category: 'Sports',
|
|
692
|
+
description: 'Weekly group run. Stay motivated and meet fellow runners.',
|
|
693
|
+
suggestedTitle: 'Weekly Run Club',
|
|
694
|
+
suggestedDescription: 'Run with us! We\'ll cover [X] miles at various paces. Coffee after optional but encouraged.',
|
|
695
|
+
defaultCapacity: 30,
|
|
696
|
+
defaultTicketPrice: 0,
|
|
697
|
+
defaultDuration: 90,
|
|
698
|
+
suggestedVibe: 'Wild',
|
|
699
|
+
suggestedDress: 'Athletic',
|
|
700
|
+
suggestedEventType: 'OutdoorActivity',
|
|
701
|
+
recommendedServices: [],
|
|
702
|
+
tags: ['running', 'fitness', 'weekly', 'club', 'outdoor'],
|
|
703
|
+
sortOrder: 4,
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
id: 'sports-volleyball',
|
|
707
|
+
name: 'Beach/Sand Volleyball',
|
|
708
|
+
slug: 'volleyball',
|
|
709
|
+
category: 'Sports',
|
|
710
|
+
description: 'Casual volleyball game at the beach or sand courts.',
|
|
711
|
+
suggestedTitle: 'Volleyball',
|
|
712
|
+
suggestedDescription: 'Bump, set, spike! Casual volleyball - we\'ll rotate teams so everyone plays. All skill levels.',
|
|
713
|
+
defaultCapacity: 16,
|
|
714
|
+
defaultTicketPrice: 0,
|
|
715
|
+
defaultDuration: 150,
|
|
716
|
+
suggestedVibe: 'Wild',
|
|
717
|
+
suggestedDress: 'Athletic',
|
|
718
|
+
suggestedEventType: 'SportsTournament',
|
|
719
|
+
recommendedServices: [],
|
|
720
|
+
tags: ['volleyball', 'beach', 'sports', 'outdoor', 'summer'],
|
|
721
|
+
sortOrder: 5,
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
id: 'sports-golf',
|
|
725
|
+
name: 'Golf Outing',
|
|
726
|
+
slug: 'golf-outing',
|
|
727
|
+
category: 'Sports',
|
|
728
|
+
description: 'Round of golf with friends. Scramble format for mixed levels.',
|
|
729
|
+
suggestedTitle: 'Golf Outing at [Course]',
|
|
730
|
+
suggestedDescription: 'Hit the links with us! Scramble format keeps it fun for all levels. Cart and green fees included.',
|
|
731
|
+
defaultCapacity: 16,
|
|
732
|
+
defaultTicketPrice: 7500, // $75
|
|
733
|
+
defaultDuration: 300,
|
|
734
|
+
suggestedVibe: 'Calm',
|
|
735
|
+
suggestedDress: 'Athletic',
|
|
736
|
+
suggestedEventType: 'SportsTournament',
|
|
737
|
+
recommendedServices: ['Venue'],
|
|
738
|
+
tags: ['golf', 'outdoor', 'sports', 'networking', 'country club'],
|
|
739
|
+
sortOrder: 6,
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
id: 'sports-cycling',
|
|
743
|
+
name: 'Group Bike Ride',
|
|
744
|
+
slug: 'group-bike-ride',
|
|
745
|
+
category: 'Sports',
|
|
746
|
+
description: 'Explore the city or trails on two wheels with a group ride.',
|
|
747
|
+
suggestedTitle: 'Group Bike Ride',
|
|
748
|
+
suggestedDescription: 'Pedal with us! Route is [X] miles with [difficulty] terrain. BYOB (Bring Your Own Bike).',
|
|
749
|
+
defaultCapacity: 20,
|
|
750
|
+
defaultTicketPrice: 0,
|
|
751
|
+
defaultDuration: 180,
|
|
752
|
+
suggestedVibe: 'Wild',
|
|
753
|
+
suggestedDress: 'Athletic',
|
|
754
|
+
suggestedEventType: 'OutdoorActivity',
|
|
755
|
+
recommendedServices: [],
|
|
756
|
+
tags: ['cycling', 'biking', 'outdoor', 'fitness', 'group'],
|
|
757
|
+
sortOrder: 7,
|
|
758
|
+
},
|
|
759
|
+
];
|
|
760
|
+
// ============================================================================
|
|
761
|
+
// BUSINESS TEMPLATES (5)
|
|
762
|
+
// ============================================================================
|
|
763
|
+
export const businessTemplates = [
|
|
764
|
+
{
|
|
765
|
+
id: 'business-networking',
|
|
766
|
+
name: 'Networking Event',
|
|
767
|
+
slug: 'networking-event',
|
|
768
|
+
category: 'Business',
|
|
769
|
+
description: 'Professional networking opportunity. Make connections that matter.',
|
|
770
|
+
suggestedTitle: '[Industry] Networking Mixer',
|
|
771
|
+
suggestedDescription: 'Expand your professional network! Connect with like-minded professionals over appetizers and drinks.',
|
|
772
|
+
defaultCapacity: 75,
|
|
773
|
+
defaultTicketPrice: 2000, // $20
|
|
774
|
+
defaultDuration: 150,
|
|
775
|
+
suggestedVibe: 'Calm',
|
|
776
|
+
suggestedDress: 'Business Casual',
|
|
777
|
+
suggestedEventType: 'ProfessionalNetworkingEvent',
|
|
778
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
779
|
+
tags: ['networking', 'professional', 'business', 'career', 'connections'],
|
|
780
|
+
isFeatured: true,
|
|
781
|
+
sortOrder: 1,
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
id: 'business-panel',
|
|
785
|
+
name: 'Panel Discussion',
|
|
786
|
+
slug: 'panel-discussion',
|
|
787
|
+
category: 'Business',
|
|
788
|
+
description: 'Expert panel discussing industry topics. Q&A included.',
|
|
789
|
+
suggestedTitle: 'Panel: [Topic]',
|
|
790
|
+
suggestedDescription: 'Join industry experts as they discuss [topic]. Audience Q&A session included. Light refreshments provided.',
|
|
791
|
+
defaultCapacity: 100,
|
|
792
|
+
defaultTicketPrice: 1500, // $15
|
|
793
|
+
defaultDuration: 120,
|
|
794
|
+
suggestedVibe: 'Calm',
|
|
795
|
+
suggestedDress: 'Business Casual',
|
|
796
|
+
suggestedEventType: 'ProfessionalNetworkingEvent',
|
|
797
|
+
recommendedServices: ['Venue', 'EventService'],
|
|
798
|
+
tags: ['panel', 'discussion', 'expert', 'industry', 'learning'],
|
|
799
|
+
sortOrder: 2,
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
id: 'business-pitch',
|
|
803
|
+
name: 'Pitch Competition',
|
|
804
|
+
slug: 'pitch-competition',
|
|
805
|
+
category: 'Business',
|
|
806
|
+
description: 'Startups pitch their ideas to judges and investors.',
|
|
807
|
+
suggestedTitle: 'Startup Pitch Night',
|
|
808
|
+
suggestedDescription: 'Watch startups compete for prizes and investor attention! Network with founders and investors after.',
|
|
809
|
+
defaultCapacity: 150,
|
|
810
|
+
defaultTicketPrice: 2500, // $25
|
|
811
|
+
defaultDuration: 180,
|
|
812
|
+
suggestedVibe: 'Wild',
|
|
813
|
+
suggestedDress: 'Business Casual',
|
|
814
|
+
suggestedEventType: 'Competition',
|
|
815
|
+
recommendedServices: ['Venue', 'EventService', 'Sponsor'],
|
|
816
|
+
tags: ['startup', 'pitch', 'entrepreneur', 'investor', 'competition'],
|
|
817
|
+
isFeatured: true,
|
|
818
|
+
sortOrder: 3,
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
id: 'business-lunch-learn',
|
|
822
|
+
name: 'Lunch & Learn',
|
|
823
|
+
slug: 'lunch-learn',
|
|
824
|
+
category: 'Business',
|
|
825
|
+
description: 'Educational session over lunch. Learn while you eat!',
|
|
826
|
+
suggestedTitle: 'Lunch & Learn: [Topic]',
|
|
827
|
+
suggestedDescription: 'Grab lunch and learn about [topic] from an expert. Food provided. Bring your questions!',
|
|
828
|
+
defaultCapacity: 40,
|
|
829
|
+
defaultTicketPrice: 1500, // $15
|
|
830
|
+
defaultDuration: 90,
|
|
831
|
+
suggestedVibe: 'Calm',
|
|
832
|
+
suggestedDress: 'Business Casual',
|
|
833
|
+
suggestedEventType: 'CorporateEventOrOfficeParty',
|
|
834
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
835
|
+
tags: ['lunch', 'learning', 'education', 'professional', 'workshop'],
|
|
836
|
+
sortOrder: 4,
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
id: 'business-happy-hour',
|
|
840
|
+
name: 'Professional Happy Hour',
|
|
841
|
+
slug: 'professional-happy-hour',
|
|
842
|
+
category: 'Business',
|
|
843
|
+
description: 'Casual after-work drinks with industry peers.',
|
|
844
|
+
suggestedTitle: '[Industry] Happy Hour',
|
|
845
|
+
suggestedDescription: 'Unwind after work with fellow [industry] professionals. Drink specials and great conversation.',
|
|
846
|
+
defaultCapacity: 50,
|
|
847
|
+
defaultTicketPrice: 0,
|
|
848
|
+
defaultDuration: 150,
|
|
849
|
+
suggestedVibe: 'Calm',
|
|
850
|
+
suggestedDress: 'Business Casual',
|
|
851
|
+
suggestedEventType: 'CasualMixer',
|
|
852
|
+
recommendedServices: ['Venue'],
|
|
853
|
+
tags: ['happy hour', 'networking', 'after work', 'drinks', 'professional'],
|
|
854
|
+
sortOrder: 5,
|
|
855
|
+
},
|
|
856
|
+
];
|
|
857
|
+
// ============================================================================
|
|
858
|
+
// MICRO TEMPLATES (5) - Quick Bash, < 2 min setup
|
|
859
|
+
// ============================================================================
|
|
860
|
+
export const microTemplates = [
|
|
861
|
+
{
|
|
862
|
+
id: 'micro-quick-hangout',
|
|
863
|
+
name: 'Quick Hangout',
|
|
864
|
+
slug: 'quick-hangout',
|
|
865
|
+
category: 'Micro',
|
|
866
|
+
description: 'Simple, quick event for a small group. Just pick a time and place!',
|
|
867
|
+
suggestedTitle: 'Hangout',
|
|
868
|
+
suggestedDescription: 'Let\'s hang out! Nothing fancy, just good company.',
|
|
869
|
+
defaultCapacity: 8,
|
|
870
|
+
defaultTicketPrice: 0,
|
|
871
|
+
defaultDuration: 120,
|
|
872
|
+
suggestedVibe: 'Casual',
|
|
873
|
+
suggestedDress: 'Casual',
|
|
874
|
+
suggestedEventType: 'CasualMixer',
|
|
875
|
+
recommendedServices: [],
|
|
876
|
+
tags: ['quick', 'simple', 'friends', 'casual', 'micro'],
|
|
877
|
+
isFeatured: true,
|
|
878
|
+
sortOrder: 1,
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
id: 'micro-coffee-chat',
|
|
882
|
+
name: 'Quick Coffee',
|
|
883
|
+
slug: 'quick-coffee',
|
|
884
|
+
category: 'Micro',
|
|
885
|
+
description: 'Grab a quick coffee with a friend or small group.',
|
|
886
|
+
suggestedTitle: 'Coffee',
|
|
887
|
+
suggestedDescription: 'Quick coffee catch-up. Let\'s chat!',
|
|
888
|
+
defaultCapacity: 4,
|
|
889
|
+
defaultTicketPrice: 0,
|
|
890
|
+
defaultDuration: 60,
|
|
891
|
+
suggestedVibe: 'Calm',
|
|
892
|
+
suggestedDress: 'Casual',
|
|
893
|
+
suggestedEventType: 'CasualMixer',
|
|
894
|
+
recommendedServices: [],
|
|
895
|
+
tags: ['coffee', 'quick', 'casual', 'chat', 'micro'],
|
|
896
|
+
sortOrder: 2,
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
id: 'micro-lunch',
|
|
900
|
+
name: 'Quick Lunch',
|
|
901
|
+
slug: 'quick-lunch',
|
|
902
|
+
category: 'Micro',
|
|
903
|
+
description: 'Lunch with a friend or colleagues.',
|
|
904
|
+
suggestedTitle: 'Lunch',
|
|
905
|
+
suggestedDescription: 'Let\'s grab lunch!',
|
|
906
|
+
defaultCapacity: 6,
|
|
907
|
+
defaultTicketPrice: 0,
|
|
908
|
+
defaultDuration: 60,
|
|
909
|
+
suggestedVibe: 'Casual',
|
|
910
|
+
suggestedDress: 'Casual',
|
|
911
|
+
suggestedEventType: 'CasualMixer',
|
|
912
|
+
recommendedServices: [],
|
|
913
|
+
tags: ['lunch', 'quick', 'food', 'casual', 'micro'],
|
|
914
|
+
sortOrder: 3,
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
id: 'micro-walk',
|
|
918
|
+
name: 'Quick Walk',
|
|
919
|
+
slug: 'quick-walk',
|
|
920
|
+
category: 'Micro',
|
|
921
|
+
description: 'Take a walk with someone. Fresh air and conversation.',
|
|
922
|
+
suggestedTitle: 'Walk',
|
|
923
|
+
suggestedDescription: 'Let\'s go for a walk and catch up!',
|
|
924
|
+
defaultCapacity: 4,
|
|
925
|
+
defaultTicketPrice: 0,
|
|
926
|
+
defaultDuration: 45,
|
|
927
|
+
suggestedVibe: 'Calm',
|
|
928
|
+
suggestedDress: 'Casual',
|
|
929
|
+
suggestedEventType: 'OutdoorActivity',
|
|
930
|
+
recommendedServices: [],
|
|
931
|
+
tags: ['walk', 'outdoor', 'exercise', 'casual', 'micro'],
|
|
932
|
+
sortOrder: 4,
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
id: 'micro-drinks',
|
|
936
|
+
name: 'Quick Drinks',
|
|
937
|
+
slug: 'quick-drinks',
|
|
938
|
+
category: 'Micro',
|
|
939
|
+
description: 'Grab a drink after work or on the weekend.',
|
|
940
|
+
suggestedTitle: 'Drinks',
|
|
941
|
+
suggestedDescription: 'Let\'s grab a drink! Nothing fancy.',
|
|
942
|
+
defaultCapacity: 6,
|
|
943
|
+
defaultTicketPrice: 0,
|
|
944
|
+
defaultDuration: 90,
|
|
945
|
+
suggestedVibe: 'Casual',
|
|
946
|
+
suggestedDress: 'Casual',
|
|
947
|
+
suggestedEventType: 'CasualMixer',
|
|
948
|
+
recommendedServices: [],
|
|
949
|
+
tags: ['drinks', 'bar', 'casual', 'social', 'micro'],
|
|
950
|
+
sortOrder: 5,
|
|
951
|
+
},
|
|
952
|
+
];
|
|
953
|
+
// ============================================================================
|
|
954
|
+
// COMMUNITY TEMPLATES (5)
|
|
955
|
+
// ============================================================================
|
|
956
|
+
export const communityTemplates = [
|
|
957
|
+
{
|
|
958
|
+
id: 'community-church',
|
|
959
|
+
name: 'Church Event',
|
|
960
|
+
slug: 'church-event',
|
|
961
|
+
category: 'Community',
|
|
962
|
+
description: 'Faith-based community gathering. Open to all.',
|
|
963
|
+
suggestedTitle: '[Church Name] Event',
|
|
964
|
+
suggestedDescription: 'Join our faith community for fellowship, worship, and connection. All are welcome!',
|
|
965
|
+
defaultCapacity: 100,
|
|
966
|
+
defaultTicketPrice: 0,
|
|
967
|
+
defaultDuration: 120,
|
|
968
|
+
suggestedVibe: 'Calm',
|
|
969
|
+
suggestedDress: 'Business Casual',
|
|
970
|
+
suggestedEventType: 'ChurchEvent',
|
|
971
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
972
|
+
tags: ['church', 'faith', 'community', 'fellowship', 'religious'],
|
|
973
|
+
sortOrder: 1,
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
id: 'community-volunteer',
|
|
977
|
+
name: 'Volunteer Day',
|
|
978
|
+
slug: 'volunteer-day',
|
|
979
|
+
category: 'Community',
|
|
980
|
+
description: 'Give back to your community together.',
|
|
981
|
+
suggestedTitle: 'Volunteer Event: [Cause]',
|
|
982
|
+
suggestedDescription: 'Make a difference! Join us to [activity] for [organization]. All supplies provided.',
|
|
983
|
+
defaultCapacity: 30,
|
|
984
|
+
defaultTicketPrice: 0,
|
|
985
|
+
defaultDuration: 240,
|
|
986
|
+
suggestedVibe: 'Calm',
|
|
987
|
+
suggestedDress: 'Casual',
|
|
988
|
+
suggestedEventType: 'CharityFundraiser',
|
|
989
|
+
recommendedServices: [],
|
|
990
|
+
tags: ['volunteer', 'charity', 'community', 'giving back', 'help'],
|
|
991
|
+
sortOrder: 2,
|
|
992
|
+
},
|
|
993
|
+
{
|
|
994
|
+
id: 'community-neighborhood',
|
|
995
|
+
name: 'Neighborhood Gathering',
|
|
996
|
+
slug: 'neighborhood-gathering',
|
|
997
|
+
category: 'Community',
|
|
998
|
+
description: 'Get to know your neighbors at a casual block party.',
|
|
999
|
+
suggestedTitle: 'Neighborhood Block Party',
|
|
1000
|
+
suggestedDescription: 'Meet your neighbors! We\'ll have food, games, and fun for all ages. Bring a dish to share.',
|
|
1001
|
+
defaultCapacity: 75,
|
|
1002
|
+
defaultTicketPrice: 0,
|
|
1003
|
+
defaultDuration: 240,
|
|
1004
|
+
suggestedVibe: 'Casual',
|
|
1005
|
+
suggestedDress: 'Casual',
|
|
1006
|
+
suggestedEventType: 'SocialClubEvent',
|
|
1007
|
+
recommendedServices: ['Vendor'],
|
|
1008
|
+
tags: ['neighborhood', 'block party', 'community', 'neighbors', 'local'],
|
|
1009
|
+
sortOrder: 3,
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
id: 'community-cleanup',
|
|
1013
|
+
name: 'Community Cleanup',
|
|
1014
|
+
slug: 'community-cleanup',
|
|
1015
|
+
category: 'Community',
|
|
1016
|
+
description: 'Clean up a local park, beach, or neighborhood.',
|
|
1017
|
+
suggestedTitle: '[Location] Cleanup Day',
|
|
1018
|
+
suggestedDescription: 'Help keep our community beautiful! Gloves and bags provided. Refreshments after.',
|
|
1019
|
+
defaultCapacity: 40,
|
|
1020
|
+
defaultTicketPrice: 0,
|
|
1021
|
+
defaultDuration: 180,
|
|
1022
|
+
suggestedVibe: 'Casual',
|
|
1023
|
+
suggestedDress: 'Casual',
|
|
1024
|
+
suggestedEventType: 'CharityFundraiser',
|
|
1025
|
+
recommendedServices: [],
|
|
1026
|
+
tags: ['cleanup', 'environment', 'volunteer', 'community', 'green'],
|
|
1027
|
+
sortOrder: 4,
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
id: 'community-meetup',
|
|
1031
|
+
name: 'Community Meetup',
|
|
1032
|
+
slug: 'community-meetup',
|
|
1033
|
+
category: 'Community',
|
|
1034
|
+
description: 'General community gathering for a shared interest.',
|
|
1035
|
+
suggestedTitle: '[Topic] Community Meetup',
|
|
1036
|
+
suggestedDescription: 'Connect with others who share your interest in [topic]. All experience levels welcome!',
|
|
1037
|
+
defaultCapacity: 40,
|
|
1038
|
+
defaultTicketPrice: 0,
|
|
1039
|
+
defaultDuration: 120,
|
|
1040
|
+
suggestedVibe: 'Casual',
|
|
1041
|
+
suggestedDress: 'Casual',
|
|
1042
|
+
suggestedEventType: 'SocialClubEvent',
|
|
1043
|
+
recommendedServices: ['Venue'],
|
|
1044
|
+
tags: ['meetup', 'community', 'interest', 'group', 'social'],
|
|
1045
|
+
sortOrder: 5,
|
|
1046
|
+
},
|
|
1047
|
+
];
|
|
1048
|
+
// ============================================================================
|
|
1049
|
+
// CELEBRATION TEMPLATES (5)
|
|
1050
|
+
// ============================================================================
|
|
1051
|
+
export const celebrationTemplates = [
|
|
1052
|
+
{
|
|
1053
|
+
id: 'celebration-wedding-reception',
|
|
1054
|
+
name: 'Wedding Reception',
|
|
1055
|
+
slug: 'wedding-reception',
|
|
1056
|
+
category: 'Celebration',
|
|
1057
|
+
description: 'Celebrate the newlyweds with dinner, dancing, and joy.',
|
|
1058
|
+
suggestedTitle: '[Names] Wedding Reception',
|
|
1059
|
+
suggestedDescription: 'Join us to celebrate the marriage of [Names]! Dinner, dancing, and love.',
|
|
1060
|
+
defaultCapacity: 150,
|
|
1061
|
+
defaultTicketPrice: 0,
|
|
1062
|
+
defaultDuration: 360,
|
|
1063
|
+
suggestedVibe: 'Wild',
|
|
1064
|
+
suggestedDress: 'Formal',
|
|
1065
|
+
suggestedEventType: 'WeddingReception',
|
|
1066
|
+
recommendedServices: ['Venue', 'Vendor', 'Entertainment', 'EventService'],
|
|
1067
|
+
tags: ['wedding', 'reception', 'marriage', 'celebration', 'love'],
|
|
1068
|
+
isFeatured: true,
|
|
1069
|
+
sortOrder: 1,
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
id: 'celebration-anniversary',
|
|
1073
|
+
name: 'Anniversary Party',
|
|
1074
|
+
slug: 'anniversary-party',
|
|
1075
|
+
category: 'Celebration',
|
|
1076
|
+
description: 'Celebrate years of love and partnership.',
|
|
1077
|
+
suggestedTitle: '[X] Year Anniversary Celebration',
|
|
1078
|
+
suggestedDescription: 'Help us celebrate [X] years together! No gifts please, just your presence.',
|
|
1079
|
+
defaultCapacity: 75,
|
|
1080
|
+
defaultTicketPrice: 0,
|
|
1081
|
+
defaultDuration: 240,
|
|
1082
|
+
suggestedVibe: 'Calm',
|
|
1083
|
+
suggestedDress: 'Business Casual',
|
|
1084
|
+
suggestedEventType: 'AnniversaryCelebration',
|
|
1085
|
+
recommendedServices: ['Venue', 'Vendor', 'Entertainment'],
|
|
1086
|
+
tags: ['anniversary', 'celebration', 'love', 'milestone', 'couple'],
|
|
1087
|
+
sortOrder: 2,
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
id: 'celebration-baby-shower',
|
|
1091
|
+
name: 'Baby Shower',
|
|
1092
|
+
slug: 'baby-shower',
|
|
1093
|
+
category: 'Celebration',
|
|
1094
|
+
description: 'Celebrate the upcoming arrival of a little one.',
|
|
1095
|
+
suggestedTitle: 'Baby Shower for [Name]',
|
|
1096
|
+
suggestedDescription: 'Join us to celebrate the upcoming arrival of Baby [Last Name]! Games, gifts, and joy.',
|
|
1097
|
+
defaultCapacity: 40,
|
|
1098
|
+
defaultTicketPrice: 0,
|
|
1099
|
+
defaultDuration: 180,
|
|
1100
|
+
suggestedVibe: 'Calm',
|
|
1101
|
+
suggestedDress: 'Business Casual',
|
|
1102
|
+
suggestedEventType: 'BabyShower',
|
|
1103
|
+
recommendedServices: ['Venue', 'Vendor', 'EventService'],
|
|
1104
|
+
tags: ['baby shower', 'baby', 'celebration', 'new arrival', 'family'],
|
|
1105
|
+
sortOrder: 3,
|
|
1106
|
+
},
|
|
1107
|
+
{
|
|
1108
|
+
id: 'celebration-retirement',
|
|
1109
|
+
name: 'Retirement Party',
|
|
1110
|
+
slug: 'retirement-party',
|
|
1111
|
+
category: 'Celebration',
|
|
1112
|
+
description: 'Honor a career and celebrate the next chapter.',
|
|
1113
|
+
suggestedTitle: 'Retirement Celebration for [Name]',
|
|
1114
|
+
suggestedDescription: 'After [X] years, [Name] is retiring! Join us to celebrate their incredible career.',
|
|
1115
|
+
defaultCapacity: 60,
|
|
1116
|
+
defaultTicketPrice: 0,
|
|
1117
|
+
defaultDuration: 180,
|
|
1118
|
+
suggestedVibe: 'Calm',
|
|
1119
|
+
suggestedDress: 'Business Casual',
|
|
1120
|
+
suggestedEventType: 'RetirementCelebration',
|
|
1121
|
+
recommendedServices: ['Venue', 'Vendor', 'Entertainment'],
|
|
1122
|
+
tags: ['retirement', 'career', 'celebration', 'milestone', 'work'],
|
|
1123
|
+
sortOrder: 4,
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
id: 'celebration-engagement',
|
|
1127
|
+
name: 'Engagement Party',
|
|
1128
|
+
slug: 'engagement-party',
|
|
1129
|
+
category: 'Celebration',
|
|
1130
|
+
description: 'Celebrate the happy couple and their upcoming wedding.',
|
|
1131
|
+
suggestedTitle: 'Engagement Party for [Names]',
|
|
1132
|
+
suggestedDescription: 'They said yes! Join us to celebrate [Names] engagement. Champagne toast at 7pm!',
|
|
1133
|
+
defaultCapacity: 50,
|
|
1134
|
+
defaultTicketPrice: 0,
|
|
1135
|
+
defaultDuration: 180,
|
|
1136
|
+
suggestedVibe: 'Wild',
|
|
1137
|
+
suggestedDress: 'Business Casual',
|
|
1138
|
+
suggestedEventType: 'EngagementParty',
|
|
1139
|
+
recommendedServices: ['Venue', 'Vendor'],
|
|
1140
|
+
tags: ['engagement', 'celebration', 'love', 'wedding', 'couple'],
|
|
1141
|
+
sortOrder: 5,
|
|
1142
|
+
},
|
|
1143
|
+
];
|
|
1144
|
+
// ============================================================================
|
|
1145
|
+
// ALL TEMPLATES COMBINED
|
|
1146
|
+
// ============================================================================
|
|
1147
|
+
export const allEventTemplates = [
|
|
1148
|
+
...socialTemplates,
|
|
1149
|
+
...partyTemplates,
|
|
1150
|
+
...concertTemplates,
|
|
1151
|
+
...classTemplates,
|
|
1152
|
+
...sportsTemplates,
|
|
1153
|
+
...businessTemplates,
|
|
1154
|
+
...microTemplates,
|
|
1155
|
+
...communityTemplates,
|
|
1156
|
+
...celebrationTemplates,
|
|
1157
|
+
];
|
|
1158
|
+
// Helper function to get templates by category
|
|
1159
|
+
export function getTemplatesByCategory(category) {
|
|
1160
|
+
return allEventTemplates.filter(t => t.category === category);
|
|
1161
|
+
}
|
|
1162
|
+
// Helper function to get featured templates
|
|
1163
|
+
export function getFeaturedTemplates() {
|
|
1164
|
+
return allEventTemplates.filter(t => t.isFeatured);
|
|
1165
|
+
}
|
|
1166
|
+
// Helper function to find a template by slug
|
|
1167
|
+
export function getTemplateBySlug(slug) {
|
|
1168
|
+
return allEventTemplates.find(t => t.slug === slug);
|
|
1169
|
+
}
|
|
1170
|
+
// Helper function to find a template by id
|
|
1171
|
+
export function getTemplateById(id) {
|
|
1172
|
+
return allEventTemplates.find(t => t.id === id);
|
|
1173
|
+
}
|
|
1174
|
+
// Search templates by name or tags
|
|
1175
|
+
export function searchTemplates(query) {
|
|
1176
|
+
const lowerQuery = query.toLowerCase();
|
|
1177
|
+
return allEventTemplates.filter(t => t.name.toLowerCase().includes(lowerQuery) ||
|
|
1178
|
+
t.description.toLowerCase().includes(lowerQuery) ||
|
|
1179
|
+
t.tags.some(tag => tag.toLowerCase().includes(lowerQuery)));
|
|
1180
|
+
}
|
|
1181
|
+
// Get all categories with counts
|
|
1182
|
+
export function getTemplateCategoryCounts() {
|
|
1183
|
+
const counts = {};
|
|
1184
|
+
for (const template of allEventTemplates) {
|
|
1185
|
+
counts[template.category] = (counts[template.category] || 0) + 1;
|
|
1186
|
+
}
|
|
1187
|
+
return counts;
|
|
1188
|
+
}
|
|
1189
|
+
// Export total count
|
|
1190
|
+
export const TOTAL_TEMPLATE_COUNT = allEventTemplates.length;
|
|
1191
|
+
//# sourceMappingURL=eventTemplates.js.map
|