RelationalDesign: fill_in.sql

File fill_in.sql, 5.5 KB (added by 223075, 6 days ago)
Line 
1-- polnenje.sql (robust, ID-agnostic)
2
3-- Optional: clear data if re-running
4-- (Do bridges first to avoid FK issues)
5DELETE FROM "User_Purchased_Package";
6DELETE FROM "User_Purchased_Merch";
7-- KEEPING backend name:
8DELETE FROM "User_Event";
9DELETE FROM "User_Booked_Class";
10DELETE FROM "Class_Includes_Training";
11
12DELETE FROM "Merch_Items";
13DELETE FROM "Package";
14DELETE FROM "Event";
15DELETE FROM "Class";
16DELETE FROM "Training";
17DELETE FROM "Instructor";
18DELETE FROM "User";
19
20
21INSERT INTO "User" (username, email, password_hash, first_name, last_name)
22VALUES
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
28INSERT INTO "Instructor" (instructor_email, instructor_password_hash, first_name, last_name, biography)
29VALUES
30('elena@studio.com', 'passElena', 'Elena', 'Petrova', 'Certified in Vinyasa Yoga'),
31('stefan@studio.com', 'passStefan', 'Stefan', 'Ristov', 'Hatha & Yin Yoga Teacher');
32
33
34INSERT INTO "Training" (training_name, description, duration, intensity_level)
35VALUES
36('Vinyasa Flow', 'Linking breath to movement', 60, 'Intermediate'),
37('Hatha Basics', 'Focus on foundational poses', 45, 'Beginner');
38
39
40INSERT INTO "Class" (date, start_time, end_time, location, capacity, seats_available, instructor_id)
41VALUES
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
48INSERT INTO "Event" (event_name, description, date, time, location)
49VALUES
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
54INSERT INTO "Package" (package_name, price, num_classes)
55VALUES
56('5-Class Pass', 25.00, 5),
57('10-Class Pass', 45.00, 10);
58
59
60INSERT INTO "Merch_Items" (item_name, description, price, quantity_in_stock)
61VALUES
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)
70INSERT INTO "User_Booked_Class" (user_id, class_id)
71VALUES
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)
86INSERT INTO "Class_Includes_Training" (class_id, training_id)
87VALUES
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)
98INSERT INTO "User_Event" (user_id, event_id)
99VALUES
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)
110INSERT INTO "User_Purchased_Package" (user_id, package_id)
111VALUES
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)
122INSERT INTO "User_Purchased_Merch" (user_id, merch_id)
123VALUES
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)
138INSERT INTO "Package_Includes_Class" (package_id, class_id)
139VALUES
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);