DatabaseCreation: seed.sql

File seed.sql, 37.2 KB (added by 231088, 22 hours ago)
Line 
1INSERT INTO Role (role_name)
2VALUES ('CLIENT'), ('ARTIST'), ('ADMIN');
3
4
5
6INSERT INTO UserRole (user_id, role_id)
7SELECT user_id, 1
8FROM Users;
9
10INSERT INTO UserRole (user_id, role_id)
11SELECT user_id, 2
12FROM ArtistProfile;
13
14INSERT INTO UserRole (user_id, role_id)
15SELECT user_id, 3
16FROM Users
17ORDER BY random()
18LIMIT 5;
19
20
21
22INSERT INTO Location (city, region, country)
23VALUES
24('Skopje','Skopje Region','MK'),
25('Bitola','Pelagonia','MK'),
26('Ohrid','Southwest','MK'),
27('Tetovo','Polog','MK'),
28('Prilep','Pelagonia','MK'),
29('Kumanovo','Northeast','MK'),
30('Strumica','Southeast','MK'),
31('Veles','Vardar','MK'),
32('Stip','East','MK'),
33('Kavadarci','Vardar','MK'),
34('Gostivar','Polog','MK'),
35('Struga','Southwest','MK'),
36('Kocani','East','MK'),
37('Gevgelija','Southeast','MK'),
38('Negotino','Vardar','MK'),
39('Debar','Southwest','MK'),
40('Kriva Palanka','Northeast','MK'),
41('Radovis','Southeast','MK'),
42('Berovo','East','MK'),
43('Delcevo','East','MK'),
44('Vinica','East','MK'),
45('Probishtip','East','MK'),
46('Krusevo','Pelagonia','MK'),
47('Resen','Pelagonia','MK'),
48('Sveti Nikole','Vardar','MK');
49
50
51
52INSERT INTO Genre (genre_name)
53VALUES
54('Pop'),('Rock'),('Jazz'),('Hip Hop'),
55('Techno'),('House'),('EDM'),
56('Classical'),('Folk'),('R&B');
57
58
59
60INSERT INTO ArtistType (type_name)
61VALUES ('Solo'), ('Band'), ('DJ');
62
63UPDATE ArtistType
64SET description = CASE artist_type_id
65 WHEN 1 THEN 'Individual solo music performer or singer.'
66 WHEN 2 THEN 'Music group or band performing together.'
67 WHEN 3 THEN 'DJ or electronic music performer.'
68END;
69
70
71
72INSERT INTO Users (email, password_hash,first_name, last_name, phone, account_status)
73SELECT
74 CASE
75
76 WHEN cp.user_id IS NOT NULL THEN
77 LOWER(replace(cp.display_name, ' ', '.'))
78 || gs.i
79 || '@mail.com'
80
81
82 WHEN ap.user_id IS NOT NULL THEN
83 LOWER(replace(ap.stage_name, ' ', '.'))
84 || gs.i
85 || '@mail.com'
86
87
88 ELSE
89 'user' || gs.i || '@mail.com'
90 END,
91
92 'hash',
93
94 CASE
95
96 WHEN cp.user_id IS NOT NULL THEN
97 split_part(cp.display_name, ' ', 1)
98
99
100 WHEN ap.user_id IS NOT NULL THEN
101 split_part(ap.stage_name, ' ', 1)
102
103
104 ELSE
105 'User' || gs.i
106 END,
107
108 CASE
109
110 WHEN cp.user_id IS NOT NULL THEN
111 CASE
112 WHEN strpos(cp.display_name, ' ') > 0
113 THEN split_part(cp.display_name, ' ', 2)
114 ELSE 'Client'
115 END
116
117
118 WHEN ap.user_id IS NOT NULL THEN
119 CASE
120 WHEN strpos(ap.stage_name, ' ') > 0
121 THEN split_part(ap.stage_name, ' ', 2)
122 ELSE 'Artist'
123 END
124
125
126 ELSE
127 'Lastname_' || gs.i
128 END,
129
130 '07' || LPAD((floor(random()*10000000))::text, 7, '0'),
131
132 CASE
133 WHEN random() < 0.7 THEN 'ACTIVE'
134 WHEN random() < 0.85 THEN 'INACTIVE'
135 WHEN random() < 0.95 THEN 'SUSPENDED'
136 ELSE 'PENDING'
137 END
138
139FROM generate_series(1, 10000) gs(i)
140
141LEFT JOIN ClientProfile cp
142 ON cp.user_id = gs.i
143
144LEFT JOIN ArtistProfile ap
145 ON ap.user_id = gs.i;
146
147
148
149
150INSERT INTO VenueType (name, description)
151VALUES
152('Indoor', 'Closed indoor venue'),
153('Outdoor', 'Open air venue'),
154('Club', 'Nightclub or party venue'),
155('Wedding Hall', 'Formal event venue');
156
157INSERT INTO Venue (
158 venue_type_id,
159 location_id,
160 venue_name,
161 address,
162 capacity,
163 indoor_outdoor
164)
165SELECT
166 (random()*3 + 1)::int,
167
168 (SELECT location_id FROM Location ORDER BY random() LIMIT 1),
169
170 'Venue_' || i,
171
172 'Street ' || i || ', Center',
173
174 (random()*500 + 50)::int,
175
176 (ARRAY['INDOOR','OUTDOOR','MIXED'])[floor(random()*3)+1]
177
178FROM generate_series(1, 200) s(i);
179
180UPDATE Venue
181SET
182 venue_name =
183 (ARRAY[
184 'Arena Hall',
185 'Sky Events',
186 'Diamond Venue',
187 'Elite Center',
188 'Royal Palace',
189 'Moonlight Hall',
190 'Golden Event Center',
191 'Galaxy Club',
192 'VIP Lounge',
193 'Sunset Venue',
194 'Diamond Ballroom',
195 'Crystal Palace',
196 'Platinum Events',
197 'Imperial Hall',
198 'Central Venue',
199 'City Stage',
200 'Aura Center',
201 'Infinity Hall',
202 'Pulse Club',
203 'Majestic Venue'
204 ])[floor(random()*20)+1]
205 || ' '
206 || venue_id,
207
208 address =
209 (ARRAY[
210 'Partizanska',
211 'Ilindenska',
212 'Makedonija',
213 'Goce Delcev',
214 'Jane Sandanski',
215 'Marshal Tito',
216 '11 Oktomvri',
217 'Dimitar Vlahov',
218 'Kej 13 Noemvri',
219 'Bulevar Srbija',
220 'Boris Trajkovski',
221 'Nikola Tesla',
222 'Pirinska',
223 'Orce Nikolov',
224 'Vodno',
225 'ASNOM',
226 'Krusevska Republika',
227 'Prvomajska',
228 'Balkan',
229 'Industriska'
230 ])[floor(random()*20)+1]
231 || ' '
232 || (floor(random()*200)+1)::int,
233
234 location_id =
235 CASE
236 WHEN venue_id <= 60 THEN
237 (ARRAY[1,1,1,1,2,2,3,4,5])[floor(random()*9)+1]
238
239 WHEN venue_id <= 100 THEN
240 (ARRAY[1,2,3,4,5,6,7,8,9])[floor(random()*9)+1]
241
242 WHEN venue_id <= 150 THEN
243 (ARRAY[6,7,8,9,10,11,12,13,14])[floor(random()*9)+1]
244
245 ELSE
246 (ARRAY[15,16,17,18,19,20,21,22,23,24,25])[floor(random()*11)+1]
247 END;
248
249
250INSERT INTO PerformanceDurationOption (label, duration_minutes)
251VALUES
252('30 min', 30),
253('1 hour', 60),
254('2 hours', 120),
255('3 hours', 180),
256('4 hours', 240);
257
258INSERT INTO ClientProfile (user_id)
259SELECT u.user_id
260FROM Users u
261LEFT JOIN ClientProfile c ON c.user_id = u.user_id
262WHERE c.user_id IS NULL
263LIMIT 5000;
264
265UPDATE ClientProfile
266SET
267 display_name = 'Client_' || client_id,
268 company_name = CASE
269 WHEN random() < 0.3 THEN 'Company_' || client_id
270 ELSE NULL
271 END,
272 preferred_contact_method =
273 (ARRAY['EMAIL','PHONE','SMS'])[floor(random()*3)+1],
274 location_id = (random()*4 + 1)::int
275WHERE display_name IS NULL;
276
277
278UPDATE ClientProfile
279SET display_name =
280CASE
281 WHEN random() < 0.5 THEN
282
283 (
284 (ARRAY[
285 'Aleksandar','Stefan','Marko','Nikola','Filip','Petar','Andrej','Martin','David','Dimitar',
286 'Viktor','Luka','Kristijan','Ivan','Jovan','Matej','Daniel','Bojan','Goran','Dejan',
287 'Milan','Igor','Nenad','Kiril','Oliver','Blagoj','Zoran','Dragan','Vladimir','Aleksa',
288 'Antonio','Emil','Damjan','Mihail','Boris','Todor','Riste','Kosta','Veljko','Darko',
289 'Branko','Sasho','Zharko','Gjorgji','Trajche','Stojan','Pero','Slobodan','Valentin','Ilija',
290 'Bojan','Jakov','Teodor','Gorjan','Hristijan','Simen','Ognen','Bojidar','Kristian','Mite',
291 'Vane','Cvetan','Goce','Pavle','Miroslav','Bane','Lazar','Stevche','Tomislav','Nikche',
292 'Janko','Rade','Simeon','Petko','Dime','Kire','Jordan','Kalin','Vlatko','Zhivko',
293 'Dushko','Tome','Blaze','Ljupcho','Vasko','Gligor','Spase','Nikodin','Aco','Ace',
294 'Koco','Borce','Gligorche','Mitko','Kiril','Slave','Bobi','Marjan','Jole','Kiko'
295 ])[floor(random()*100)+1]
296
297 || ' ' ||
298
299 (ARRAY[
300 'Petrovski','Stojanovski','Nikolovski','Trajkovski','Jovanovski','Ilievski','Mitrevski','Ristovski','Georgievski','Kostovski',
301 'Angelovski','Todorovski','Stefanovski','Mladenovski','Dimitrovski','Atanasovski','Markovski','Spasovski','Bogdanovski','Manasievski',
302 'Velkovski','Temelkovski','Mihajlovski','Gligorovski','Tasevski','Janevski','Radevski','Petreski','Boshkovski','Chadikovski',
303 'Mitevski','Bogoevski','Bojadzhiski','Kuzmanovski','Pandevski','Nestorovski','Talevski','Arsovski','Gjorgievski','Naumovski',
304 'Donevski','Kitanovski','Rangelski','Shuklevski','Mickovski','Krstevski','Rupchevski','Popovski','Mucevski','Trpeski',
305 'Dameski','Simjanovski','Dojchinovski','Kolevski','Mojsovski','Bojkovski','Klekovski','Stamenkovski','Bashovski','Vasilevski',
306 'Toshevski','Risteski','Karanfilovski','Shapkaroski','Zafirovski','Jankuloski','Bogoeski','Madzharovski','Sazdovski','Veljanovski',
307 'Belevski','Kotevski','Kochevski','Milevski','Tanushevski','Kjurkchievski','Maleski','Denkovski','Bimblovski','Klimovski',
308 'Despotovski','Lazarovski','Hristovski','Cvetkovski','Pechijareski','Shterjovski','Dojkovski','Boshnevski','Kitanoski','Mickoski',
309 'Bojchevski','Kiprijanovski','Vidanovski','Kjurchiski','Tosheski','Zdravevski','Shilegovski','Kondovski','Pavlovski','Rupovski'
310 ])[floor(random()*100)+1]
311 )
312
313 ELSE
314
315 (
316 (ARRAY[
317 'Marija','Ana','Elena','Ivana','Sara','Teodora','Simona','Monika','Mila','Jovana',
318 'Kristina','Angela','Andrea','Viktorija','Katerina','Tamara','Magdalena','Matea','Iva','Stefani',
319 'Biljana','Daniela','Gordana','Aleksandra','Natasha','Veronika','Marina','Anastasija','Ljupka','Sanja',
320 'Emilija','Maja','Valentina','Nina','Ema','Lidija','Dragana','Milica','Isidora','Sofija',
321 'Petra','Leona','Barbara','Hana','Megi','Tea','Kalina','Vesna','Bojana','Karla',
322 'Tatjana','Zorica','Jasmina','Slavica','Violeta','Klara','Angela','Rosica','Desanka','Jadranka',
323 'Mirela','Ljubica','Snezhana','Olivera','Veselinka','Anita','Tijana','Nadica','Radmila','Silvana',
324 'Renata','Blagica','Cvetanka','Mimoza','Menka','Zhaklina','Dushanka','Sonja','Biserka','Ruzhica',
325 'Gorica','Stanislava','Kornelija','Mirjana','Margarita','Nela','Viktorina','Danijela','Marijana','Liljana',
326 'Ganka','Makedonka','Bosilka','Vaska','Milena','Nada','Elizabeta','Vangelica','Vaska','Lenche'
327 ])[floor(random()*100)+1]
328
329 || ' ' ||
330
331 (ARRAY[
332 'Petrovska','Stojanovska','Nikolovska','Trajkovska','Jovanovska','Ilievska','Mitrevska','Ristovska','Georgievska','Kostovska',
333 'Angelovska','Todorovska','Stefanovska','Mladenovska','Dimitrovska','Atanasovska','Markovska','Spasovska','Bogdanovska','Manasievska',
334 'Velkovska','Temelkovska','Mihajlovska','Gligorovska','Tasevska','Janevska','Radevska','Petreska','Boshkovska','Chadikovska',
335 'Mitevska','Bogoevska','Bojadzhiska','Kuzmanovska','Pandevska','Nestorovska','Talevska','Arsovska','Gjorgievska','Naumovska',
336 'Donevska','Kitanovska','Rangelska','Shuklevska','Mickovska','Krstevska','Rupchevska','Popovska','Mucevska','Trpeska',
337 'Dameska','Simjanovska','Dojchinovska','Kolevska','Mojsovska','Bojkovska','Klekovska','Stamenkovska','Bashovska','Vasilevska',
338 'Toshevska','Risteska','Karanfilovska','Shapkaroska','Zafirovska','Jankuloska','Bogoeska','Madzharovska','Sazdovska','Veljanovska',
339 'Belevska','Kotevska','Kochevska','Milevska','Tanushevska','Kjurkchievska','Maleska','Denkovska','Bimblovska','Klimovska',
340 'Despotovska','Lazarovska','Hristovska','Cvetkovska','Pechijareska','Shterjovska','Dojkovska','Boshnevska','Kitanoska','Mickoska',
341 'Bojchevska','Kiprijanovska','Vidanovska','Kjurchiska','Tosheska','Zdravevska','Shilegovska','Kondovska','Pavlovska','Rupovska'
342 ])[floor(random()*100)+1]
343 )
344END;
345
346UPDATE ClientProfile
347SET company_name =
348CASE
349 WHEN random() < 0.35 THEN
350 (ARRAY[
351 'MK Events',
352 'Balkan Weddings',
353 'Elite Productions',
354 'Vision Media',
355 'Golden Moments',
356 'Urban Events',
357 'Diamond Entertainment',
358 'Skopje Music Group',
359 'Aura Productions',
360 'Infinity Events',
361 'Sunset Weddings',
362 'Prestige Event Solutions',
363 'Royal Moments',
364 'Prime Entertainment',
365 'Nova Event Group',
366 'Dynamic Productions',
367 'Art Media Studio',
368 'Pulse Events',
369 'Celebrity Booking',
370 'Event Masters',
371 'VIP Moments',
372 'Music Factory',
373 'Stage One',
374 'Live Experience',
375 'Future Sounds',
376 'Creative Events',
377 'Exclusive Weddings',
378 'Dream Day Events',
379 'Urban Nights',
380 'Skyline Productions',
381 'Balkan Stars',
382 'Next Level Events',
383 'Platinum Booking',
384 'Starline Entertainment',
385 'Galaxy Events',
386 'Apollo Productions',
387 'Harmony Weddings',
388 'Blue Sky Events',
389 'Visionary Group',
390 'Spotlight Entertainment',
391 'Magic Moments',
392 'Elite Weddings',
393 'Event Horizon',
394 'Luna Productions',
395 'Epic Events',
396 'Infinity Booking',
397 'Grand Stage',
398 'Dynamic Nights',
399 'Premium Events',
400 'Crown Entertainment'
401 ])[floor(random()*50)+1]
402
403 ELSE NULL
404END;
405
406
407INSERT INTO Bookable (bookable_type, display_name, description, base_price_from, average_rating, location_id, is_active)
408SELECT
409 'ARTIST',
410 'Artist_' || i,
411 'Professional performer',
412 (random()*300 + 50)::int,
413 ROUND((random()*5)::numeric, 2),
414 (random()*4 + 1)::int,
415 TRUE
416FROM generate_series(1, 500) s(i);
417
418INSERT INTO Bookable (bookable_type, display_name, description, base_price_from, average_rating, location_id, is_active)
419SELECT
420 'BAND',
421 'Band_' || i,
422 'Live band for events',
423 (random()*1000 + 300)::int,
424 ROUND((random()*5)::numeric, 2),
425 (random()*4 + 1)::int,
426 TRUE
427FROM generate_series(1, 100) s(i);
428
429UPDATE Bookable b
430SET display_name = ap.stage_name
431FROM ArtistProfile ap
432WHERE b.bookable_id = ap.bookable_id;
433
434UPDATE Bookable b
435SET display_name = bp.band_name
436FROM BandProfile bp
437WHERE b.bookable_id = bp.bookable_id;
438
439
440INSERT INTO ArtistProfile (bookable_id, user_id, artist_type_id, stage_name, biography, is_verified)
441SELECT
442 b.bookable_id,
443 u.user_id,
444 (random()*2 + 1)::int,
445
446 'Artist_' || b.bookable_id,
447
448 (ARRAY[
449 'Professional performer with years of experience.',
450 'Energetic and passionate about live music.',
451 'Available for weddings, parties and events.',
452 'Experienced in international performances.',
453 'Known for engaging the audience.'
454 ])[floor(random()*5)+1],
455
456 CASE WHEN random() < 0.3 THEN TRUE ELSE FALSE END
457
458FROM
459 (SELECT bookable_id FROM Bookable LIMIT 500) b
460JOIN
461 (SELECT user_id FROM Users LIMIT 500) u
462ON b.bookable_id = u.user_id;
463
464
465WITH solo_names AS (
466 SELECT ROW_NUMBER() OVER () AS rn, name
467 FROM (
468 VALUES
469 ('Taylor Swift'),
470 ('Drake'),
471 ('The Weeknd'),
472 ('Ed Sheeran'),
473 ('Adele'),
474 ('Eminem'),
475 ('Rihanna'),
476 ('Beyoncé'),
477 ('Justin Bieber'),
478 ('Bruno Mars'),
479 ('Ariana Grande'),
480 ('Billie Eilish'),
481 ('Olivia Rodrigo'),
482 ('Dua Lipa'),
483 ('Harry Styles'),
484 ('Post Malone'),
485 ('Kendrick Lamar'),
486 ('J. Cole'),
487 ('Travis Scott'),
488 ('Future'),
489 ('SZA'),
490 ('Doja Cat'),
491 ('Nicki Minaj'),
492 ('Cardi B'),
493 ('Megan Thee Stallion'),
494 ('Selena Gomez'),
495 ('Miley Cyrus'),
496 ('Katy Perry'),
497 ('Lady Gaga'),
498 ('Shawn Mendes'),
499 ('Camila Cabello'),
500 ('Charlie Puth'),
501 ('Sam Smith'),
502 ('Lewis Capaldi'),
503 ('Halsey'),
504 ('Lana Del Rey'),
505 ('Lorde'),
506 ('Chris Brown'),
507 ('Usher'),
508 ('Alicia Keys'),
509 ('John Legend'),
510 ('Jason Derulo'),
511 ('Pitbull'),
512 ('Flo Rida'),
513 ('Akon'),
514 ('Sean Paul'),
515 ('Timbaland'),
516 ('Pharrell Williams'),
517 ('Macklemore'),
518 ('Wiz Khalifa'),
519 ('Tyga'),
520 ('Playboi Carti'),
521 ('Lil Uzi Vert'),
522 ('Young Thug'),
523 ('Gunna'),
524 ('Roddy Ricch'),
525 ('Polo G'),
526 ('Juice WRLD'),
527 ('XXXTentacion'),
528 ('Pop Smoke'),
529 ('Lil Durk'),
530 ('Logic'),
531 ('NF'),
532 ('Machine Gun Kelly'),
533 ('G-Eazy'),
534 ('Jack Harlow'),
535 ('Latto'),
536 ('Ice Spice'),
537 ('Central Cee'),
538 ('Stormzy'),
539 ('Dave'),
540 ('Skepta'),
541 ('Fred again..'),
542 ('Raye'),
543 ('Jessie J'),
544 ('Conan Gray'),
545 ('Tate McRae'),
546 ('JVKE'),
547 ('Lizzo'),
548 ('Pink'),
549 ('Kelly Clarkson'),
550 ('Demi Lovato'),
551 ('Christina Aguilera'),
552 ('Jennifer Lopez'),
553 ('Fergie'),
554 ('Gwen Stefani'),
555 ('Nelly Furtado'),
556 ('Robin Thicke'),
557 ('Childish Gambino'),
558 ('Anderson .Paak'),
559 ('Tyler The Creator'),
560 ('Frank Ocean'),
561 ('Daniel Caesar'),
562 ('Giveon'),
563 ('Khalid'),
564 ('Bryson Tiller'),
565 ('Tory Lanez'),
566 ('Summer Walker'),
567 ('Kehlani'),
568 ('Jhene Aiko'),
569 ('Tems'),
570 ('Burna Boy'),
571 ('Wizkid'),
572 ('Davido'),
573 ('Ayra Starr'),
574 ('Rema'),
575 ('CKay'),
576 ('Stromae'),
577 ('Indila'),
578 ('Zaz'),
579 ('Aya Nakamura'),
580 ('David Bowie'),
581 ('George Michael'),
582 ('Phil Collins'),
583 ('Sting'),
584 ('Bryan Adams'),
585 ('Rod Stewart'),
586 ('Tom Jones'),
587 ('Andrea Bocelli'),
588 ('Josh Groban'),
589 ('Sarah Brightman'),
590 ('Enya'),
591 ('Yanni'),
592 ('Joji'),
593 ('Rich Brian'),
594 ('NIKI'),
595 ('Keshi'),
596 ('Zucchero'),
597 ('Eros Ramazzotti'),
598 ('Laura Pausini'),
599 ('Tiziano Ferro'),
600 ('Loreen'),
601 ('Sia'),
602 ('Gotye'),
603 ('Tones And I'),
604 ('Keith Urban'),
605 ('Luke Combs'),
606 ('Morgan Wallen'),
607 ('Chris Stapleton'),
608 ('Carrie Underwood')
609 ) AS t(name)
610),
611solo_artists AS (
612 SELECT artist_id,
613 ROW_NUMBER() OVER (ORDER BY artist_id) AS rn
614 FROM ArtistProfile
615 WHERE artist_type_id = 1
616)
617UPDATE ArtistProfile ap
618SET stage_name = sn.name
619FROM solo_artists sa
620JOIN solo_names sn ON sa.rn = sn.rn
621WHERE ap.artist_id = sa.artist_id;
622
623WITH band_names AS (
624 SELECT ROW_NUMBER() OVER () AS rn, name
625 FROM (
626 VALUES
627 ('Coldplay'),
628 ('Imagine Dragons'),
629 ('Maroon 5'),
630 ('OneRepublic'),
631 ('Linkin Park'),
632 ('Green Day'),
633 ('Fall Out Boy'),
634 ('Paramore'),
635 ('Panic! At The Disco'),
636 ('Red Hot Chili Peppers'),
637 ('Metallica'),
638 ('Slipknot'),
639 ('Iron Maiden'),
640 ('Black Sabbath'),
641 ('AC/DC'),
642 ('Queen'),
643 ('The Beatles'),
644 ('The Rolling Stones'),
645 ('Pink Floyd'),
646 ('Led Zeppelin'),
647 ('Nirvana'),
648 ('Pearl Jam'),
649 ('Foo Fighters'),
650 ('Arctic Monkeys'),
651 ('The Killers'),
652 ('Muse'),
653 ('Radiohead'),
654 ('Blur'),
655 ('Oasis'),
656 ('U2'),
657 ('Bon Jovi'),
658 ('Journey'),
659 ('Aerosmith'),
660 ('Guns N Roses'),
661 ('Def Leppard'),
662 ('Van Halen'),
663 ('Kiss'),
664 ('Eagles'),
665 ('Fleetwood Mac'),
666 ('ABBA'),
667 ('Bee Gees'),
668 ('Earth Wind & Fire'),
669 ('Black Eyed Peas'),
670 ('Chainsmokers'),
671 ('BTS'),
672 ('BLACKPINK'),
673 ('EXO'),
674 ('TWICE'),
675 ('Stray Kids'),
676 ('SEVENTEEN'),
677 ('NewJeans'),
678 ('LE SSERAFIM'),
679 ('IVE'),
680 ('TXT'),
681 ('ENHYPEN'),
682 ('BigBang'),
683 ('Girls Generation'),
684 ('Super Junior'),
685 ('2NE1'),
686 ('Aventura'),
687 ('Wisin & Yandel'),
688 ('Wu-Tang Clan'),
689 ('Run DMC'),
690 ('Public Enemy'),
691 ('Migos'),
692 ('Little Mix'),
693 ('One Direction'),
694 ('Westlife'),
695 ('Backstreet Boys'),
696 ('NSYNC'),
697 ('Jonas Brothers'),
698 ('The Script'),
699 ('Keane'),
700 ('Snow Patrol'),
701 ('Thirty Seconds To Mars'),
702 ('Simple Plan'),
703 ('Good Charlotte'),
704 ('Sum 41'),
705 ('Blink-182'),
706 ('My Chemical Romance'),
707 ('The Offspring'),
708 ('Deep Purple'),
709 ('Scorpions'),
710 ('Rammstein'),
711 ('Nightwish'),
712 ('Sabaton'),
713 ('Ghost'),
714 ('Disturbed'),
715 ('System Of A Down'),
716 ('Korn'),
717 ('Bring Me The Horizon'),
718 ('Five Finger Death Punch'),
719 ('Avenged Sevenfold'),
720 ('Bullet For My Valentine'),
721 ('Papa Roach'),
722 ('Evanescence'),
723 ('Within Temptation'),
724 ('Limp Bizkit'),
725 ('Deftones'),
726 ('Megadeth'),
727 ('Slayer'),
728 ('Cannibal Corpse'),
729 ('Behemoth'),
730 ('Cradle Of Filth'),
731 ('Children Of Bodom'),
732 ('Opeth'),
733 ('Dream Theater'),
734 ('Tool'),
735 ('Porcupine Tree'),
736 ('Genesis'),
737 ('Yes'),
738 ('King Crimson'),
739 ('Rush'),
740 ('The Doors'),
741 ('The Police'),
742 ('The Cure'),
743 ('Depeche Mode'),
744 ('Talking Heads'),
745 ('The Smiths'),
746 ('Joy Division'),
747 ('New Order'),
748 ('Jamiroquai'),
749 ('Tame Impala'),
750 ('Glass Animals'),
751 ('The 1975'),
752 ('Phoenix'),
753 ('Franz Ferdinand'),
754 ('MGMT'),
755 ('Empire Of The Sun'),
756 ('Gorillaz'),
757 ('BABYMETAL'),
758 ('X Japan'),
759 ('ONE OK ROCK'),
760 ('Official HIGE DANdism'),
761 ('YOASOBI'),
762 ('RADWIMPS'),
763 ('King Gnu'),
764 ('Perfume'),
765 ('Maneskin'),
766 ('Il Volo'),
767 ('ABBA'),
768 ('Roxette'),
769 ('A-ha'),
770 ('The Cranberries'),
771 ('Enigma'),
772 ('Modern Talking'),
773 ('Boney M'),
774 ('Europe'),
775 ('Alphaville'),
776 ('Ace Of Base'),
777 ('INXS'),
778 ('Crowded House'),
779 ('Men At Work'),
780 ('Savage Garden'),
781 ('Florida Georgia Line'),
782 ('Dan + Shay'),
783 ('The Beach Boys'),
784 ('Simon & Garfunkel'),
785 ('The Who'),
786 ('Cream'),
787 ('Santana'),
788 ('Chicago'),
789 ('Boston'),
790 ('Foreigner'),
791 ('REO Speedwagon'),
792 ('Lynyrd Skynyrd'),
793 ('The White Stripes'),
794 ('Queens Of The Stone Age'),
795 ('Interpol'),
796 ('The Strokes'),
797 ('The Libertines'),
798 ('Kasabian'),
799 ('Bloc Party'),
800 ('The Kooks'),
801 ('Two Door Cinema Club'),
802 ('Vampire Weekend'),
803 ('Foster The People'),
804 ('Alt-J'),
805 ('Bon Iver'),
806 ('The National'),
807 ('Mumford & Sons'),
808 ('Of Monsters And Men'),
809 ('The Lumineers'),
810 ('Train'),
811 ('Lifehouse'),
812 ('The Fray'),
813 ('Daughtry'),
814 ('Nickelback'),
815 ('Creed'),
816 ('Stone Sour'),
817 ('Seether'),
818 ('Breaking Benjamin'),
819 ('Three Days Grace'),
820 ('Skillet'),
821 ('Starset'),
822 ('Sleep Token'),
823 ('Bad Omens'),
824 ('Spiritbox'),
825 ('Motionless In White'),
826 ('Architects'),
827 ('I Prevail'),
828 ('Pierce The Veil'),
829 ('Sleeping With Sirens'),
830 ('Asking Alexandria'),
831 ('Falling In Reverse'),
832 ('Clean Bandit'),
833 ('Rudimental'),
834 ('Disclosure'),
835 ('Above & Beyond'),
836 ('Major Lazer'),
837 ('Meduza'),
838 ('Tale Of Us'),
839 ('The xx'),
840 ('Justice'),
841 ('Pendulum'),
842 ('Knife Party'),
843 ('The Chainsmokers'),
844 ('Daft Punk'),
845 ('Swedish House Mafia'),
846 ('The Chemical Brothers'),
847 ('Underworld'),
848 ('Massive Attack'),
849 ('Portishead'),
850 ('Zero 7'),
851 ('Air'),
852 ('M83'),
853 ('Sigur Ros'),
854 ('Explosions In The Sky'),
855 ('God Is An Astronaut'),
856 ('Khruangbin'),
857 ('Parcels'),
858 ('LANY'),
859 ('Walk The Moon'),
860 ('Bastille'),
861 ('X Ambassadors'),
862 ('American Authors'),
863 ('fun.'),
864 ('Fitz And The Tantrums'),
865 ('Years & Years'),
866 ('Why Dont We'),
867 ('CNCO'),
868 ('Boyz II Men'),
869 ('Destinys Child'),
870 ('TLC'),
871 ('En Vogue'),
872 ('The Pussycat Dolls'),
873 ('Atomic Kitten'),
874 ('All Saints'),
875 ('Sugababes'),
876 ('Blue')
877 ) AS t(name)
878),
879band_artists AS (
880 SELECT artist_id,
881 ROW_NUMBER() OVER (ORDER BY artist_id) AS rn
882 FROM ArtistProfile
883 WHERE artist_type_id = 2
884)
885UPDATE ArtistProfile ap
886SET stage_name = bn.name
887FROM band_artists ba
888JOIN band_names bn ON ba.rn = bn.rn
889WHERE ap.artist_id = ba.artist_id;
890
891WITH dj_names AS (
892 SELECT ROW_NUMBER() OVER () AS rn, name
893 FROM (
894 VALUES
895 ('David Guetta'),
896 ('Martin Garrix'),
897 ('Tiësto'),
898 ('Avicii'),
899 ('Alan Walker'),
900 ('Kygo'),
901 ('Diplo'),
902 ('Skrillex'),
903 ('Zedd'),
904 ('Marshmello'),
905 ('Steve Aoki'),
906 ('DJ Snake'),
907 ('Calvin Harris'),
908 ('Swedish House Mafia'),
909 ('Daft Punk'),
910 ('Armin van Buuren'),
911 ('Hardwell'),
912 ('Don Diablo'),
913 ('Alesso'),
914 ('Afrojack'),
915 ('KSHMR'),
916 ('Nicky Romero'),
917 ('Deadmau5'),
918 ('Porter Robinson'),
919 ('Eric Prydz'),
920 ('Paul van Dyk'),
921 ('Fisher'),
922 ('Vintage Culture'),
923 ('CamelPhat'),
924 ('Black Coffee'),
925 ('Peggy Gou'),
926 ('Charlotte de Witte'),
927 ('Amelie Lens'),
928 ('Carl Cox'),
929 ('Adam Beyer'),
930 ('Solomun'),
931 ('Boris Brejcha'),
932 ('Claptone'),
933 ('Anyma'),
934 ('Meduza'),
935 ('Purple Disco Machine'),
936 ('Sigala'),
937 ('Joel Corry'),
938 ('Above & Beyond'),
939 ('Disclosure'),
940 ('Clean Bandit'),
941 ('Rudimental'),
942 ('The Chainsmokers'),
943 ('Major Lazer'),
944 ('Knife Party'),
945 ('The Chemical Brothers'),
946 ('Underworld'),
947 ('Justice'),
948 ('Moby'),
949 ('Fatboy Slim'),
950 ('Paul Oakenfold'),
951 ('ATB'),
952 ('Benny Benassi'),
953 ('Robin Schulz'),
954 ('Lost Frequencies'),
955 ('Tujamo'),
956 ('Timmy Trumpet'),
957 ('W&W'),
958 ('VINAI'),
959 ('R3HAB'),
960 ('Blasterjaxx'),
961 ('Dimitri Vegas'),
962 ('Like Mike'),
963 ('Basshunter'),
964 ('Gareth Emery'),
965 ('Cosmic Gate'),
966 ('Andrew Rayel'),
967 ('Vini Vici'),
968 ('Infected Mushroom'),
969 ('Astrix'),
970 ('Borgore'),
971 ('Yellow Claw'),
972 ('Baauer'),
973 ('RL Grime'),
974 ('Flume'),
975 ('Illenium'),
976 ('Seven Lions'),
977 ('San Holo'),
978 ('ODESZA'),
979 ('Rezz'),
980 ('Malaa'),
981 ('Tchami'),
982 ('Kungs'),
983 ('Cedric Gervais'),
984 ('Sam Feldt'),
985 ('Alle Farben'),
986 ('Ofenbach'),
987 ('Topic'),
988 ('Regard'),
989 ('Dynoro'),
990 ('Steve Angello'),
991 ('Sebastian Ingrosso'),
992 ('Axwell'),
993 ('Maceo Plex'),
994 ('Nina Kraviz'),
995 ('Richie Hawtin'),
996 ('Nicole Moudaber'),
997 ('Deborah De Luca'),
998 ('ANNA'),
999 ('Tale Of Us'),
1000 ('ARTBAT'),
1001 ('Adriatique'),
1002 ('Miss Monique'),
1003 ('Morten'),
1004 ('Laidback Luke'),
1005 ('Fedde Le Grand'),
1006 ('Oliver Heldens'),
1007 ('Lucas & Steve'),
1008 ('Mike Williams'),
1009 ('Brooks'),
1010 ('Julian Jordan'),
1011 ('Sander van Doorn'),
1012 ('Headhunterz'),
1013 ('Wildstylez'),
1014 ('Da Tweekaz'),
1015 ('Sub Zero Project'),
1016 ('Coone'),
1017 ('Angerfist')
1018 ) AS t(name)
1019),
1020dj_artists AS (
1021 SELECT artist_id,
1022 ROW_NUMBER() OVER (ORDER BY artist_id) AS rn
1023 FROM ArtistProfile
1024 WHERE artist_type_id = 3
1025)
1026UPDATE ArtistProfile ap
1027SET stage_name = dn.name
1028FROM dj_artists da
1029JOIN dj_names dn ON da.rn = dn.rn
1030WHERE ap.artist_id = da.artist_id;
1031
1032
1033
1034INSERT INTO BandProfile (bookable_id, owner_user_id, band_name, formation_year, biography)
1035SELECT
1036 b.bookable_id,
1037 (random()*10000 + 1)::int,
1038
1039 'Band_' || b.bookable_id,
1040
1041 (2000 + (random()*24)::int),
1042
1043 (ARRAY[
1044 'Dynamic band performing live events.',
1045 'Experienced group with international gigs.',
1046 'Energetic band for weddings and parties.',
1047 'Versatile band covering multiple genres.'
1048 ])[floor(random()*4)+1]
1049
1050FROM (
1051 SELECT bookable_id
1052 FROM Bookable
1053 WHERE bookable_id > 500
1054 LIMIT 100
1055) b;
1056
1057WITH band_names AS (
1058 SELECT ROW_NUMBER() OVER () AS rn, name
1059 FROM (
1060 VALUES
1061 ('Coldplay'),
1062 ('Imagine Dragons'),
1063 ('Maroon 5'),
1064 ('OneRepublic'),
1065 ('Linkin Park'),
1066 ('Green Day'),
1067 ('Fall Out Boy'),
1068 ('Paramore'),
1069 ('Panic! At The Disco'),
1070 ('Red Hot Chili Peppers'),
1071 ('Metallica'),
1072 ('Slipknot'),
1073 ('Iron Maiden'),
1074 ('Black Sabbath'),
1075 ('AC/DC'),
1076 ('Queen'),
1077 ('The Beatles'),
1078 ('The Rolling Stones'),
1079 ('Pink Floyd'),
1080 ('Led Zeppelin'),
1081 ('Nirvana'),
1082 ('Pearl Jam'),
1083 ('Foo Fighters'),
1084 ('Arctic Monkeys'),
1085 ('The Killers'),
1086 ('Muse'),
1087 ('Radiohead'),
1088 ('Blur'),
1089 ('Oasis'),
1090 ('U2'),
1091 ('Bon Jovi'),
1092 ('Journey'),
1093 ('Aerosmith'),
1094 ('Guns N Roses'),
1095 ('Def Leppard'),
1096 ('Van Halen'),
1097 ('Kiss'),
1098 ('Eagles'),
1099 ('Fleetwood Mac'),
1100 ('ABBA'),
1101 ('Bee Gees'),
1102 ('Earth Wind & Fire'),
1103 ('Black Eyed Peas'),
1104 ('Chainsmokers'),
1105 ('BTS'),
1106 ('BLACKPINK'),
1107 ('EXO'),
1108 ('TWICE'),
1109 ('Stray Kids'),
1110 ('SEVENTEEN'),
1111 ('NewJeans'),
1112 ('LE SSERAFIM'),
1113 ('IVE'),
1114 ('TXT'),
1115 ('ENHYPEN'),
1116 ('BigBang'),
1117 ('Girls Generation'),
1118 ('Super Junior'),
1119 ('2NE1'),
1120 ('Aventura'),
1121 ('Wisin & Yandel'),
1122 ('Wu-Tang Clan'),
1123 ('Run DMC'),
1124 ('Public Enemy'),
1125 ('Migos'),
1126 ('Little Mix'),
1127 ('One Direction'),
1128 ('Westlife'),
1129 ('Backstreet Boys'),
1130 ('NSYNC'),
1131 ('Jonas Brothers'),
1132 ('The Script'),
1133 ('Keane'),
1134 ('Snow Patrol'),
1135 ('Thirty Seconds To Mars'),
1136 ('Simple Plan'),
1137 ('Good Charlotte'),
1138 ('Sum 41'),
1139 ('Blink-182'),
1140 ('My Chemical Romance'),
1141 ('The Offspring'),
1142 ('Deep Purple'),
1143 ('Scorpions'),
1144 ('Rammstein'),
1145 ('Nightwish'),
1146 ('Sabaton'),
1147 ('Ghost'),
1148 ('Disturbed'),
1149 ('System Of A Down'),
1150 ('Korn'),
1151 ('Bring Me The Horizon'),
1152 ('Five Finger Death Punch'),
1153 ('Avenged Sevenfold'),
1154 ('Bullet For My Valentine'),
1155 ('Papa Roach'),
1156 ('Evanescence'),
1157 ('Within Temptation'),
1158 ('Limp Bizkit'),
1159 ('Deftones'),
1160 ('Megadeth')
1161 ) AS t(name)
1162),
1163bands AS (
1164 SELECT band_id,
1165 ROW_NUMBER() OVER (ORDER BY band_id) AS rn
1166 FROM BandProfile
1167 LIMIT 100
1168)
1169UPDATE BandProfile bp
1170SET band_name = bn.name
1171FROM bands b
1172JOIN band_names bn ON b.rn = bn.rn
1173WHERE bp.band_id = b.band_id;
1174
1175INSERT INTO BandMember (band_id, artist_id)
1176SELECT
1177 b.band_id,
1178 a.artist_id
1179FROM BandProfile b
1180JOIN LATERAL (
1181 SELECT artist_id
1182 FROM ArtistProfile
1183 ORDER BY random() + b.band_id
1184 LIMIT (2 + floor(random()*3))::int
1185) a ON true;
1186
1187
1188INSERT INTO BookableGenre (bookable_id, genre_id)
1189SELECT
1190 b.bookable_id,
1191 g.genre_id
1192FROM Bookable b
1193JOIN LATERAL (
1194 SELECT genre_id
1195 FROM Genre
1196 ORDER BY random()
1197 LIMIT (2 + floor(random()*2))::int
1198) g ON true;
1199
1200
1201INSERT INTO BookingRequest (client_id, duration_id, event_type, event_date)
1202SELECT
1203 c.client_id,
1204
1205 (random()*4 + 1)::int,
1206
1207 (ARRAY['Wedding','Birthday','Corporate','Party'])[floor(random()*4)+1],
1208
1209 CURRENT_DATE + (floor(random()*365))::int
1210
1211FROM generate_series(1, 10000000)
1212JOIN LATERAL (
1213 SELECT client_id FROM ClientProfile ORDER BY random() LIMIT 1
1214) c ON true;
1215
1216UPDATE BookingRequest br
1217SET
1218 venue_id = random_venue.venue_id,
1219 venue_type_id = random_venue.venue_type_id,
1220 location_id = random_venue.location_id
1221FROM LATERAL (
1222 SELECT
1223 v.venue_id,
1224 v.venue_type_id,
1225 v.location_id
1226 FROM Venue v
1227 WHERE v.venue_id =
1228 (
1229 floor(random() * (SELECT MAX(venue_id) FROM Venue) + 1)
1230 )::int
1231) random_venue;
1232
1233
1234INSERT INTO BookingStatusHistory (booking_id, changed_by_user_id, new_status, changed_at)
1235SELECT
1236 b.booking_id,
1237 (random()*999 + 1)::int,
1238 'CREATED',
1239 b.created_at
1240FROM Booking b;
1241
1242INSERT INTO BookingStatusHistory (booking_id, changed_by_user_id, new_status, changed_at)
1243SELECT
1244 b.booking_id,
1245 (random()*999 + 1)::int,
1246 'CONFIRMED',
1247 b.created_at + INTERVAL '1 hour'
1248FROM Booking b
1249WHERE random() < 0.7;
1250
1251INSERT INTO BookingStatusHistory (booking_id, changed_by_user_id, new_status, changed_at)
1252SELECT
1253 b.booking_id,
1254 (random()*999 + 1)::int,
1255 'COMPLETED',
1256 b.created_at + INTERVAL '2 hours'
1257FROM Booking b
1258WHERE random() < 0.5;
1259
1260
1261
1262INSERT INTO Offer (request_id, bookable_id, duration_id, total_price)
1263SELECT
1264 r.request_id,
1265 b.bookable_id,
1266 (random()*5 + 1)::int,
1267 (random()*900 + 100)::int
1268FROM BookingRequest r
1269CROSS JOIN generate_series(1, 2)
1270JOIN LATERAL (
1271 SELECT bookable_id FROM Bookable ORDER BY random() LIMIT 1
1272) b ON true
1273WHERE r.request_id BETWEEN 1 AND 20000000;
1274
1275
1276INSERT INTO Booking (offer_id, final_price, booking_status, created_at)
1277SELECT
1278 o.offer_id,
1279 o.total_price,
1280
1281 CASE
1282 WHEN rand_val < 0.6 THEN 'CREATED'
1283 WHEN rand_val < 0.85 THEN 'CONFIRMED'
1284 ELSE 'COMPLETED'
1285 END,
1286
1287 CURRENT_TIMESTAMP - (floor(random()*30)::int * INTERVAL '1 day')
1288
1289FROM (
1290 SELECT
1291 o.*,
1292 random() AS rand_val
1293 FROM Offer o
1294) o
1295WHERE rand_val < 0.2;
1296
1297INSERT INTO Payment (booking_id, amount, payment_status)
1298SELECT
1299 b.booking_id,
1300 b.final_price,
1301 CASE
1302 WHEN b.booking_status = 'COMPLETED' THEN 'PAID'
1303 WHEN b.booking_status = 'CONFIRMED' THEN 'PAID'
1304 ELSE 'PENDING'
1305 END
1306FROM Booking b;
1307
1308INSERT INTO Message (sender_user_id, receiver_user_id, request_id, booking_id, content, sent_at)
1309SELECT
1310 (random()*10000 + 1)::int,
1311 (random()*10000 + 1)::int,
1312
1313 CASE
1314 WHEN random() < 0.5 THEN r.request_id
1315 ELSE NULL
1316 END,
1317
1318 CASE
1319 WHEN random() >= 0.5 THEN b.booking_id
1320 ELSE NULL
1321 END,
1322
1323 (ARRAY[
1324 'Hello, I want to book',
1325 'Is this date available?',
1326 'Can we change the time?',
1327 'Thank you for the offer',
1328 'Let’s confirm the booking',
1329 'Price seems good',
1330 'Can you send details?',
1331 'Looking forward to event'
1332 ])[floor(random()*8)+1],
1333
1334 NOW() - (random() * INTERVAL '30 days')
1335
1336FROM generate_series(1, 1000000) gs
1337LEFT JOIN LATERAL (
1338 SELECT request_id FROM BookingRequest ORDER BY random() LIMIT 1
1339) r ON true
1340LEFT JOIN LATERAL (
1341 SELECT booking_id FROM Booking ORDER BY random() LIMIT 1
1342) b ON true;
1343
1344
1345INSERT INTO AvailabilitySlot (bookable_id, start_datetime, end_datetime, status)
1346SELECT
1347 b.bookable_id,
1348 NOW(),
1349 NOW() + INTERVAL '2 hours',
1350 'AVAILABLE'
1351FROM generate_series(1, 600000)
1352JOIN LATERAL (
1353 SELECT bookable_id FROM Bookable ORDER BY random() LIMIT 1
1354) b ON true;
1355
1356UPDATE AvailabilitySlot
1357SET
1358 bookable_id = ((random() * 599)::int + 1),
1359
1360 start_datetime = random_start,
1361
1362 end_datetime = random_start
1363 + (
1364 (ARRAY[1,2,3,4,5])[floor(random()*5)+1]
1365 * interval '1 hour'
1366 ),
1367
1368 status = (
1369 ARRAY['AVAILABLE', 'BOOKED', 'PENDING']
1370 )[floor(random()*3)+1]
1371
1372FROM (
1373 SELECT
1374 slot_id,
1375
1376 NOW()
1377 + (random() * interval '180 days')
1378 + ((floor(random()*18) + 6) * interval '1 hour')
1379 AS random_start
1380
1381 FROM AvailabilitySlot
1382) t
1383
1384WHERE AvailabilitySlot.slot_id = t.slot_id;
1385
1386
1387INSERT INTO PricingRule (bookable_id, duration_id, venue_type_id, base_price)
1388SELECT
1389 b.bookable_id,
1390
1391 d.duration_id,
1392
1393 CASE
1394 WHEN random() < 0.5 THEN (random()*4 + 1)::int
1395 ELSE NULL
1396 END,
1397
1398 ROUND((random()*500 + 100)::numeric, 2)
1399
1400FROM Bookable b
1401JOIN LATERAL (
1402 SELECT duration_id
1403 FROM PerformanceDurationOption
1404 ORDER BY random()
1405 LIMIT (2 + floor(random()*2))::int
1406) d ON true;
1407
1408UPDATE PricingRule
1409SET valid_to =
1410 valid_from + (
1411 (floor(random() * 365) + 30)::int
1412 * INTERVAL '1 day'
1413 );
1414
1415
1416
1417INSERT INTO Review (booking_id, rating, comment)
1418SELECT
1419 b.booking_id,
1420 (floor(random()*5) + 1)::int,
1421 'Great experience'
1422FROM Booking b
1423WHERE b.booking_status = 'COMPLETED';
1424
1425
1426