1 | -- polnenje.sql (robust, ID-agnostic)
|
---|
2 |
|
---|
3 | -- Optional: clear data if re-running
|
---|
4 | -- (Do bridges first to avoid FK issues)
|
---|
5 | DELETE FROM "User_Purchased_Package";
|
---|
6 | DELETE FROM "User_Purchased_Merch";
|
---|
7 | -- KEEPING backend name:
|
---|
8 | DELETE FROM "User_Event";
|
---|
9 | DELETE FROM "User_Booked_Class";
|
---|
10 | DELETE FROM "Class_Includes_Training";
|
---|
11 |
|
---|
12 | DELETE FROM "Merch_Items";
|
---|
13 | DELETE FROM "Package";
|
---|
14 | DELETE FROM "Event";
|
---|
15 | DELETE FROM "Class";
|
---|
16 | DELETE FROM "Training";
|
---|
17 | DELETE FROM "Instructor";
|
---|
18 | DELETE FROM "User";
|
---|
19 |
|
---|
20 |
|
---|
21 | INSERT INTO "User" (username, email, password_hash, first_name, last_name)
|
---|
22 | VALUES
|
---|
23 | ('ana123', 'ana@example.com', 'hashA1', 'Ana', 'Naumovska'),
|
---|
24 | ('mikiYoga', 'miki@example.com', 'hashA2', 'Miki', 'Trajkov'),
|
---|
25 | ('davidG', 'david@example.com', 'hashA3', 'David', 'Georgiev');
|
---|
26 |
|
---|
27 |
|
---|
28 | INSERT INTO "Instructor" (instructor_email, instructor_password_hash, first_name, last_name, biography)
|
---|
29 | VALUES
|
---|
30 | ('elena@studio.com', 'passElena', 'Elena', 'Petrova', 'Certified in Vinyasa Yoga'),
|
---|
31 | ('stefan@studio.com', 'passStefan', 'Stefan', 'Ristov', 'Hatha & Yin Yoga Teacher');
|
---|
32 |
|
---|
33 |
|
---|
34 | INSERT INTO "Training" (training_name, description, duration, intensity_level)
|
---|
35 | VALUES
|
---|
36 | ('Vinyasa Flow', 'Linking breath to movement', 60, 'Intermediate'),
|
---|
37 | ('Hatha Basics', 'Focus on foundational poses', 45, 'Beginner');
|
---|
38 |
|
---|
39 |
|
---|
40 | INSERT INTO "Class" (date, start_time, end_time, location, capacity, seats_available, instructor_id)
|
---|
41 | VALUES
|
---|
42 | ('2025-06-10', '08:00', '09:00', 'Studio A', 20, 20,
|
---|
43 | (SELECT instructor_id FROM "Instructor" WHERE instructor_email='elena@studio.com')),
|
---|
44 | ('2025-06-10', '09:30', '10:30', 'Studio B', 15, 15,
|
---|
45 | (SELECT instructor_id FROM "Instructor" WHERE instructor_email='stefan@studio.com'));
|
---|
46 |
|
---|
47 |
|
---|
48 | INSERT INTO "Event" (event_name, description, date, time, location)
|
---|
49 | VALUES
|
---|
50 | ('Summer Yoga Workshop', 'Outdoor event for all levels', '2025-07-05', '09:00', 'City Park'),
|
---|
51 | ('Meditation Retreat', 'Weekend retreat with meditation', '2025-08-01', '08:00', 'Mountain Lodge');
|
---|
52 |
|
---|
53 |
|
---|
54 | INSERT INTO "Package" (package_name, price, num_classes)
|
---|
55 | VALUES
|
---|
56 | ('5-Class Pass', 25.00, 5),
|
---|
57 | ('10-Class Pass', 45.00, 10);
|
---|
58 |
|
---|
59 |
|
---|
60 | INSERT INTO "Merch_Items" (item_name, description, price, quantity_in_stock)
|
---|
61 | VALUES
|
---|
62 | ('Yoga Mat', 'Eco-friendly TPE mat', 30.00, 50),
|
---|
63 | ('Yoga Block', 'Cork block for alignment', 12.00, 30);
|
---|
64 |
|
---|
65 |
|
---|
66 | -- Bridge tables (via sub-selects, no hardcoded IDs)
|
---|
67 | ---------------------------------------------------------
|
---|
68 |
|
---|
69 | -- User_Booked_Class (books)
|
---|
70 | INSERT INTO "User_Booked_Class" (user_id, class_id)
|
---|
71 | VALUES
|
---|
72 | (
|
---|
73 | (SELECT user_id FROM "User" WHERE email='ana@example.com'),
|
---|
74 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
|
---|
75 | ),
|
---|
76 | (
|
---|
77 | (SELECT user_id FROM "User" WHERE email='miki@example.com'),
|
---|
78 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
|
---|
79 | ),
|
---|
80 | (
|
---|
81 | (SELECT user_id FROM "User" WHERE email='david@example.com'),
|
---|
82 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B')
|
---|
83 | );
|
---|
84 |
|
---|
85 | -- Class_Includes_Training (is_scheduled_for)
|
---|
86 | INSERT INTO "Class_Includes_Training" (class_id, training_id)
|
---|
87 | VALUES
|
---|
88 | (
|
---|
89 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A'),
|
---|
90 | (SELECT training_id FROM "Training" WHERE training_name='Vinyasa Flow')
|
---|
91 | ),
|
---|
92 | (
|
---|
93 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B'),
|
---|
94 | (SELECT training_id FROM "Training" WHERE training_name='Hatha Basics')
|
---|
95 | );
|
---|
96 |
|
---|
97 | -- User_Event (registers) (backend expects this table name)
|
---|
98 | INSERT INTO "User_Event" (user_id, event_id)
|
---|
99 | VALUES
|
---|
100 | (
|
---|
101 | (SELECT user_id FROM "User" WHERE email='ana@example.com'),
|
---|
102 | (SELECT event_id FROM "Event" WHERE event_name='Summer Yoga Workshop' AND date='2025-07-05')
|
---|
103 | ),
|
---|
104 | (
|
---|
105 | (SELECT user_id FROM "User" WHERE email='miki@example.com'),
|
---|
106 | (SELECT event_id FROM "Event" WHERE event_name='Meditation Retreat' AND date='2025-08-01')
|
---|
107 | );
|
---|
108 |
|
---|
109 | -- User_Purchased_Package (buys)
|
---|
110 | INSERT INTO "User_Purchased_Package" (user_id, package_id)
|
---|
111 | VALUES
|
---|
112 | (
|
---|
113 | (SELECT user_id FROM "User" WHERE email='ana@example.com'),
|
---|
114 | (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass')
|
---|
115 | ),
|
---|
116 | (
|
---|
117 | (SELECT user_id FROM "User" WHERE email='miki@example.com'),
|
---|
118 | (SELECT package_id FROM "Package" WHERE package_name='10-Class Pass')
|
---|
119 | );
|
---|
120 |
|
---|
121 | -- User_Purchased_Merch (purchases)
|
---|
122 | INSERT INTO "User_Purchased_Merch" (user_id, merch_id)
|
---|
123 | VALUES
|
---|
124 | (
|
---|
125 | (SELECT user_id FROM "User" WHERE email='ana@example.com'),
|
---|
126 | (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Mat')
|
---|
127 | ),
|
---|
128 | (
|
---|
129 | (SELECT user_id FROM "User" WHERE email='ana@example.com'),
|
---|
130 | (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Block')
|
---|
131 | ),
|
---|
132 | (
|
---|
133 | (SELECT user_id FROM "User" WHERE email='miki@example.com'),
|
---|
134 | (SELECT merch_id FROM "Merch_Items" WHERE item_name='Yoga Block')
|
---|
135 | );
|
---|
136 |
|
---|
137 | -- Package_Includes_Class (is_for)
|
---|
138 | INSERT INTO "Package_Includes_Class" (package_id, class_id)
|
---|
139 | VALUES
|
---|
140 | (
|
---|
141 | (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass'),
|
---|
142 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
|
---|
143 | ),
|
---|
144 | (
|
---|
145 | (SELECT package_id FROM "Package" WHERE package_name='5-Class Pass'),
|
---|
146 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='09:30' AND location='Studio B')
|
---|
147 | ),
|
---|
148 | (
|
---|
149 | (SELECT package_id FROM "Package" WHERE package_name='10-Class Pass'),
|
---|
150 | (SELECT class_id FROM "Class" WHERE date='2025-06-10' AND start_time='08:00' AND location='Studio A')
|
---|
151 | );
|
---|