From 45b43706fc739d1a303fc1a7154102285ad14b6f Mon Sep 17 00:00:00 2001
From: Dominika Zemanovicova <xzemanov@fi.muni.cz>
Date: Sun, 30 Apr 2023 01:09:55 +0200
Subject: [PATCH] Use endpoints for database seed and drop

---
 .../datainitializer/DataInitializer.java      |  36 +++
 .../DataInitializerController.java            |  43 ++++
 .../src/main/resources/drop.sql               |   1 -
 .../src/main/resources/import.sql             |   7 -
 .../datainitializer/DataInitializer.java      | 127 +++++++++++
 .../DataInitializerController.java            |  43 ++++
 .../src/main/resources/drop.sql               |   3 -
 .../src/main/resources/import.sql             |  94 --------
 .../modulelanguageschool/course/Course.java   |  10 +-
 .../datainitializer/DataInitializer.java      | 205 ++++++++++++++++++
 .../DataInitializerController.java            |  43 ++++
 .../modulelanguageschool/lecture/Lecture.java |  12 +
 .../modulelanguageschool/user/User.java       |  15 ++
 .../src/main/resources/drop.sql               |   7 -
 .../src/main/resources/import.sql             | 128 -----------
 15 files changed, 533 insertions(+), 241 deletions(-)
 create mode 100644 application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializer.java
 create mode 100644 application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializerController.java
 delete mode 100644 application/module-certificate/src/main/resources/drop.sql
 delete mode 100644 application/module-certificate/src/main/resources/import.sql
 create mode 100644 application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializer.java
 create mode 100644 application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializerController.java
 delete mode 100644 application/module-exercise/src/main/resources/drop.sql
 delete mode 100644 application/module-exercise/src/main/resources/import.sql
 create mode 100644 application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializer.java
 create mode 100644 application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializerController.java
 delete mode 100644 application/module-language-school/src/main/resources/drop.sql
 delete mode 100644 application/module-language-school/src/main/resources/import.sql

diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializer.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializer.java
new file mode 100644
index 00000000..ddc23530
--- /dev/null
+++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializer.java
@@ -0,0 +1,36 @@
+package org.fuseri.modulecertificate.datainitializer;
+
+import org.fuseri.modulecertificate.Certificate;
+import org.fuseri.modulecertificate.service.CertificateRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.Instant;
+import java.util.List;
+
+@Component
+public class DataInitializer {
+
+    private final CertificateRepository certificateRepository;
+
+    @Autowired
+    public DataInitializer(CertificateRepository certificateRepository) {
+        this.certificateRepository = certificateRepository;
+    }
+
+    public void drop() {
+        certificateRepository.deleteAll();
+    }
+
+    public void initialize() {
+        drop();
+
+        Certificate c1 = new Certificate(7L, Instant.parse("2023-04-12T10:30:00Z"), 2L, "certificate_file_1.pdf", "Certificate for Course English A1");
+        Certificate c2 = new Certificate(7L, Instant.parse("2023-04-17T14:15:00Z"), 3L, "certificate_file_3.pdf", "Certificate for Course English A2");
+        Certificate c3 = new Certificate(9L, Instant.parse("2023-04-23T14:15:00Z"), 3L, "certificate_file_4.pdf", "Certificate for Course English A2");
+        Certificate c4 = new Certificate(7L, Instant.parse("2023-04-28T14:15:00Z"), 4L, "certificate_file_5.pdf", "Certificate for Course English B1");
+        Certificate c5 = new Certificate(9L, Instant.parse("2023-04-29T14:15:00Z"), 4L, "certificate_file_6.pdf", "Certificate for Course English B1");
+
+        certificateRepository.saveAll(List.of(c1, c2, c3, c4, c5));
+    }
+}
diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializerController.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializerController.java
new file mode 100644
index 00000000..5c3fa9f4
--- /dev/null
+++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/datainitializer/DataInitializerController.java
@@ -0,0 +1,43 @@
+package org.fuseri.modulecertificate.datainitializer;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/datainitializer")
+public class DataInitializerController {
+    private final DataInitializer dataInitializer;
+
+    @Autowired
+    public DataInitializerController(DataInitializer dataInitializer) {
+        this.dataInitializer = dataInitializer;
+    }
+
+    @Operation(summary = "Seed certificate database", description = "Seeds certificate database. Drops all data first.")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data initialized successfully."),
+    })
+    @PostMapping
+    public ResponseEntity<Void> initialize() {
+        dataInitializer.initialize();
+        return ResponseEntity.noContent().build();
+    }
+
+    @Operation(summary = "Drop certificate database", description = "Drops all data from certificate database")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data dropped successfully."),
+    })
+    @DeleteMapping
+    public ResponseEntity<Void> drop() {
+        dataInitializer.drop();
+        return ResponseEntity.noContent().build();
+    }
+
+}
diff --git a/application/module-certificate/src/main/resources/drop.sql b/application/module-certificate/src/main/resources/drop.sql
deleted file mode 100644
index fd254728..00000000
--- a/application/module-certificate/src/main/resources/drop.sql
+++ /dev/null
@@ -1 +0,0 @@
-drop table if exists certificate cascade
\ No newline at end of file
diff --git a/application/module-certificate/src/main/resources/import.sql b/application/module-certificate/src/main/resources/import.sql
deleted file mode 100644
index df6f95d9..00000000
--- a/application/module-certificate/src/main/resources/import.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-INSERT INTO certificate (id_certificate, certificate_file, certificate_file_name, id_course, generated_at, id_user) VALUES (1, 'certificate_file_1.pdf', 'Certificate for Course English A1', 2, '2023-04-29 10:30:00', 7);
-INSERT INTO certificate (id_certificate, certificate_file, certificate_file_name, id_course, generated_at, id_user) VALUES (2, 'certificate_file_2.pdf', 'Certificate for Course English A2', 3, '2023-04-28 14:15:00', 7);
-INSERT INTO certificate (id_certificate, certificate_file, certificate_file_name, id_course, generated_at, id_user) VALUES (3, 'certificate_file_2.pdf', 'Certificate for Course English A2', 3, '2023-04-28 14:15:00', 9);
-INSERT INTO certificate (id_certificate, certificate_file, certificate_file_name, id_course, generated_at, id_user) VALUES (4, 'certificate_file_2.pdf', 'Certificate for Course English B1', 4, '2023-04-28 14:15:00', 7);
-INSERT INTO certificate (id_certificate, certificate_file, certificate_file_name, id_course, generated_at, id_user) VALUES (5, 'certificate_file_2.pdf', 'Certificate for Course English B1', 4, '2023-04-28 14:15:00', 9);
-
-ALTER TABLE certificate ALTER COLUMN id_certificate RESTART WITH 6;
\ No newline at end of file
diff --git a/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializer.java b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializer.java
new file mode 100644
index 00000000..991e9d93
--- /dev/null
+++ b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializer.java
@@ -0,0 +1,127 @@
+package org.fuseri.moduleexercise.datainitializer;
+
+import org.fuseri.moduleexercise.answer.Answer;
+import org.fuseri.moduleexercise.answer.AnswerRepository;
+import org.fuseri.moduleexercise.exercise.Exercise;
+import org.fuseri.moduleexercise.exercise.ExerciseRepository;
+import org.fuseri.moduleexercise.question.Question;
+import org.fuseri.moduleexercise.question.QuestionRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashSet;
+import java.util.List;
+
+@Component
+public class DataInitializer {
+
+    private final ExerciseRepository exerciseRepository;
+    private final QuestionRepository questionRepository;
+    private final AnswerRepository answerRepository;
+
+    @Autowired
+    public DataInitializer(ExerciseRepository exerciseRepository, QuestionRepository questionRepository,
+                           AnswerRepository answerRepository) {
+        this.exerciseRepository = exerciseRepository;
+        this.questionRepository = questionRepository;
+        this.answerRepository = answerRepository;
+    }
+
+    public void drop() {
+        exerciseRepository.deleteAll();
+    }
+
+    public void initialize() {
+        drop();
+
+        // exercise
+        var ex1 = new Exercise("Present Continuous Exercise 1", "Practice using the present continuous tense.", 6, 5, new HashSet<>());
+        var ex2 = new Exercise("Past Simple Exercise 1", "Use the past simple to describe past events.", 6, 5, new HashSet<>());
+        var ex3 = new Exercise("Food Vocabulary Exercise 1", "Learn vocabulary related to food.", 2, 5, new HashSet<>());
+        var ex4 = new Exercise("Job Interview Exercise 1", "Practice answering common job interview questions.", 7, 5, new HashSet<>());
+        var ex5 = new Exercise("BegrĂĽĂźung und Vorstellung Ăśbung", "Ăśbung zum BegrĂĽĂźen und Vorstellen", 2, 1, new HashSet<>());
+        exerciseRepository.saveAll(List.of(ex1, ex2, ex3, ex4, ex5));
+
+        // question
+        var q1 = new Question("What is the correct form of the present continuous tense of \"run\"?", new HashSet<>(), ex1);
+        var q2 = new Question("Which verbs are not usually used in the present continuous tense?", new HashSet<>(), ex1);
+        var q3 = new Question("What did you do last weekend?", new HashSet<>(), ex2);
+        var q4 = new Question("What did you eat for breakfast this morning?", new HashSet<>(), ex2);
+        var q5 = new Question("Where did you go on vacation last year?", new HashSet<>(), ex2);
+        var q6 = new Question("What is the English word for \"la comida\"?", new HashSet<>(), ex3);
+        var q7 = new Question("Tell me about yourself.", new HashSet<>(), ex4);
+        var q8 = new Question("Why are you interested in this job?", new HashSet<>(), ex4);
+        var q9 = new Question("What are your greatest strengths and weaknesses?", new HashSet<>(), ex4);
+        var q10 = new Question("Can you give an example of a time when you overcame a challenge?", new HashSet<>(), ex4);
+        var q11 = new Question("Where do you see yourself in five years?", new HashSet<>(), ex4);
+        var q12 = new Question("Was ist eine höfliche Begrüßung im Deutschen?", new HashSet<>(), ex5);
+        var q13 = new Question("Wie antwortet man auf die Frage \"Wie geht es Ihnen?\"", new HashSet<>(), ex5);
+        var q14 = new Question("Wie stellt man sich auf Deutsch vor?", new HashSet<>(), ex5);
+
+        var questions = List.of(q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14);
+        questionRepository.saveAll(questions);
+
+        // answer
+        var a1 = new Answer("is running", true, q1);
+        var a2 = new Answer("are running", false, q1);
+        var a3 = new Answer("am running", false, q1);
+
+        var a4 = new Answer("think", true, q2);
+        var a5 = new Answer("want", true, q2);
+        var a6 = new Answer("love", false, q2);
+
+        var a7 = new Answer("I visited my family.", true, q3);
+        var a8 = new Answer("I'm visiting my family.", false, q3);
+        var a9 = new Answer("I will visit my family.", false, q3);
+
+        var a10 = new Answer("the food", true, q4);
+        var a11 = new Answer("the drink", false, q4);
+        var a12 = new Answer("the music", false, q4);
+
+        var a13 = new Answer("I ate cereal for breakfast.", true, q5);
+        var a14 = new Answer("I eat cereal for breakfast.", false, q5);
+        var a15 = new Answer("I will eat cereal for breakfast.", false, q5);
+
+        var a16 = new Answer("I went to Hawaii on vacation last year.", true, q6);
+        var a17 = new Answer("I'm going to Hawaii on vacation next year.", false, q6);
+        var a18 = new Answer("I will go to Hawaii on vacation next year.", false, q6);
+
+        var a19 = new Answer("I was born in a small town in the midwest.", false, q7);
+        var a20 = new Answer("I graduated from XYZ University with a degree in computer science.", false, q7);
+        var a21 = new Answer("I have over five years of experience in software development.", true, q7);
+
+        var a22 = new Answer("I just need a job.", false, q8);
+        var a23 = new Answer("I am excited about the company culture and the opportunities for growth.", true, q8);
+        var a24 = new Answer("I heard the salary is good.", false, q8);
+
+        var a25 = new Answer("My greatest strength is my attention to detail. My greatest weakness is public speaking.", true, q9);
+        var a26 = new Answer("My greatest strength is my ability to multitask. My greatest weakness is that I am a perfectionist.", false, q9);
+        var a27 = new Answer("My greatest strength is my leadership skills. My greatest weakness is that I work too hard.", false, q9);
+
+        var a28 = new Answer("When I was working on a project for a client, the client requested changes that were outside the scope of the project. I had to work with the client to manage their expectations and negotiate a compromise.", true, q10);
+        var a29 = new Answer("When I was in college, I had a difficult time balancing my coursework and my social life. I had to learn how to manage my time better.", false, q10);
+        var a30 = new Answer("I have never faced a significant challenge in my professional life.", false, q10);
+
+        var a31 = new Answer("I see myself in a management position, leading a team of developers.", false, q11);
+        var a32 = new Answer("I see myself as a valuable contributor to the company, continuing to develop my skills and taking on new challenges.", true, q11);
+
+        var a33 = new Answer("Guten Tag!", true, q12);
+        var a34 = new Answer("Hallo!", false, q12);
+        var a35 = new Answer("Moin!", false, q12);
+
+        var a36 = new Answer("Mir geht es gut, danke!", true, q13);
+        var a37 = new Answer("Mir geht es schlecht, danke!", false, q13);
+        var a38 = new Answer("Mir geht es so lala.", false, q13);
+
+        var a39 = new Answer("Ich heiĂźe [Name].", true, q14);
+        var a40 = new Answer("Ich bin [Name].", false, q14);
+        var a41 = new Answer("Ich komme aus [Land].", false, q14);
+
+        var answers = List.of(
+                a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
+                a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
+                a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41);
+
+        answerRepository.saveAll(answers);
+    }
+}
diff --git a/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializerController.java b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializerController.java
new file mode 100644
index 00000000..b9cfa910
--- /dev/null
+++ b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/datainitializer/DataInitializerController.java
@@ -0,0 +1,43 @@
+package org.fuseri.moduleexercise.datainitializer;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/datainitializer")
+public class DataInitializerController {
+    private final DataInitializer dataInitializer;
+
+    @Autowired
+    public DataInitializerController(DataInitializer dataInitializer) {
+        this.dataInitializer = dataInitializer;
+    }
+
+    @Operation(summary = "Seed exercise database", description = "Seeds exercise database. Drops all data first")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data initialized successfully."),
+    })
+    @PostMapping
+    public ResponseEntity<Void> initialize() {
+        dataInitializer.initialize();
+        return ResponseEntity.noContent().build();
+    }
+
+    @Operation(summary = "Drop exercise database", description = "Drops all data from exercise database")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data dropped successfully."),
+    })
+    @DeleteMapping
+    public ResponseEntity<Void> drop() {
+        dataInitializer.drop();
+        return ResponseEntity.noContent().build();
+    }
+
+}
diff --git a/application/module-exercise/src/main/resources/drop.sql b/application/module-exercise/src/main/resources/drop.sql
deleted file mode 100644
index 7c077f02..00000000
--- a/application/module-exercise/src/main/resources/drop.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-drop table if exists answer cascade
-drop table if exists exercise cascade
-drop table if exists question cascade
\ No newline at end of file
diff --git a/application/module-exercise/src/main/resources/import.sql b/application/module-exercise/src/main/resources/import.sql
deleted file mode 100644
index 3972f426..00000000
--- a/application/module-exercise/src/main/resources/import.sql
+++ /dev/null
@@ -1,94 +0,0 @@
--- exercise
--- insert into exercise (id, lecture_id, description, difficulty, name) values (default, ?, ?, ?, ?)
-INSERT INTO exercise (id, course_id, description, difficulty, name) VALUES (1, 5, 'Practice using the present continuous tense.', 3, 'Present Continuous Exercise 1');
-INSERT INTO exercise (id, course_id, description, difficulty, name) VALUES (2, 5, 'Use the past simple to describe past events.', 6, 'Past Simple Exercise 1');
-INSERT INTO exercise (id, course_id, description, difficulty, name) VALUES (3, 5, 'Learn vocabulary related to food.', 2, 'Food Vocabulary Exercise 1');
-INSERT INTO exercise (id, course_id, description, difficulty, name) VALUES (4, 5, 'Practice answering common job interview questions.', 7, 'Job Interview Exercise 1');
-
-INSERT INTO exercise (id, course_id, description, difficulty, name) VALUES (5, 1, 'Ăśbung zum BegrĂĽĂźen und Vorstellen', 2, 'BegrĂĽĂźung und Vorstellung Ăśbung');
-
-ALTER TABLE exercise ALTER COLUMN id RESTART WITH 6;
-
--- question
--- insert into question (id, exercise_id, text) values (default, ?, ?)
-INSERT INTO question (id, exercise_id, text) VALUES (1, 1, 'What is the correct form of the present continuous tense of "run"?');
-INSERT INTO question (id, exercise_id, text) VALUES (2, 1, 'Which verbs are not usually used in the present continuous tense?');
-
-INSERT INTO question (id, exercise_id, text) VALUES (3, 2, 'What did you do last weekend?');
-INSERT INTO question (id, exercise_id, text) VALUES (4, 2, 'What did you eat for breakfast this morning?');
-INSERT INTO question (id, exercise_id, text) VALUES (5, 2, 'Where did you go on vacation last year?');
-
-INSERT INTO question (id, exercise_id, text) VALUES (6, 3, 'What is the English word for "la comida"?');
-
-INSERT INTO question (id, exercise_id, text) VALUES (7, 4, 'Tell me about yourself.');
-INSERT INTO question (id, exercise_id, text) VALUES (8, 4, 'Why are you interested in this job?');
-INSERT INTO question (id, exercise_id, text) VALUES (9, 4, 'What are your greatest strengths and weaknesses?');
-INSERT INTO question (id, exercise_id, text) VALUES (10, 4, 'Can you give an example of a time when you overcame a challenge?');
-INSERT INTO question (id, exercise_id, text) VALUES (11, 4, 'Where do you see yourself in five years?');
-
-INSERT INTO question (id, exercise_id, text) VALUES (12, 5, 'Was ist eine höfliche Begrüßung im Deutschen?');
-INSERT INTO question (id, exercise_id, text) VALUES (13, 5, 'Wie antwortet man auf die Frage "Wie geht es Ihnen?"');
-INSERT INTO question (id, exercise_id, text) VALUES (14, 5, 'Wie stellt man sich auf Deutsch vor?');
-
-ALTER TABLE question ALTER COLUMN id RESTART WITH 15;
-
-
--- answer
--- INSERT INTO answer (is_correct, question_id, text) VALUES (1, 1, 'is running')
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (1, 1, true, 'is running');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (2, 1, false, 'are running');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (3, 1, false, 'am running');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (4, 2, true, 'think');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (5, 2, true, 'want');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (6, 2, false, 'love');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (7, 3, true, 'I visited my family.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (8, 3, false, 'I''m visiting my family.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (9, 3, false, 'I will visit my family.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (10, 4, true, 'the food');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (11, 4, false, 'the drink');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (12, 4, false, 'the music');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (13, 5, true, 'I ate cereal for breakfast.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (14, 5, false, 'I eat cereal for breakfast.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (15, 5, false, 'I will eat cereal for breakfast.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (16, 6, true, 'I went to Hawaii on vacation last year.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (17, 6, false, 'I''m going to Hawaii on vacation next year.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (18, 6, false, 'I will go to Hawaii on vacation next year.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (19, 7, false, 'I was born in a small town in the midwest.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (20, 7, false, 'I graduated from XYZ University with a degree in computer science.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (21, 7, true, 'I have over five years of experience in software development.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (22, 8, false, 'I just need a job.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (23, 8, true, 'I am excited about the company culture and the opportunities for growth.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (24, 8, false, 'I heard the salary is good.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (25, 9, true, 'My greatest strength is my attention to detail. My greatest weakness is public speaking.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (26, 9, false, 'My greatest strength is my ability to multitask. My greatest weakness is that I am a perfectionist.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (27, 9, false, 'My greatest strength is my leadership skills. My greatest weakness is that I work too hard.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (28, 10, true, 'When I was working on a project for a client, the client requested changes that were outside the scope of the project. I had to work with the client to manage their expectations and negotiate a compromise.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (29, 10, false, 'When I was in college, I had a difficult time balancing my coursework and my social life. I had to learn how to manage my time better.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (30, 10, false, 'I have never faced a significant challenge in my professional life.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (31, 11, false, 'I see myself in a management position, leading a team of developers.');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (32, 11, true, 'I see myself as a valuable contributor to the company, continuing to develop my skills and taking on new challenges.');
-
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (33, 12, true, 'Guten Tag!');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (34, 12, false, 'Hallo!');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (35, 12, false, 'Moin!');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (36, 13, true, 'Mir geht es gut, danke!');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (37, 13, false, 'Mir geht es schlecht, danke!');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (38, 13, false, 'Mir geht es so lala.');
-
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (39, 14, true, 'Ich heiĂźe [Name].');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (40, 14, false, 'Ich bin [Name].');
-INSERT INTO answer (id, question_id, is_correct, text) VALUES (41, 14, false, 'Ich komme aus [Land].');
-
-ALTER TABLE answer ALTER COLUMN id RESTART WITH 42;
\ No newline at end of file
diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/course/Course.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/course/Course.java
index fd81844e..fa2b1c1f 100644
--- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/course/Course.java
+++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/course/Course.java
@@ -5,8 +5,8 @@ import lombok.*;
 import org.fuseri.modulelanguageschool.common.DomainObject;
 import org.fuseri.modulelanguageschool.user.User;
 
+import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 @Getter
 @Setter
@@ -45,6 +45,14 @@ public class Course extends DomainObject {
         this.proficiency = proficiency;
     }
 
+    public Course(String name, Integer capacity, Language language, ProficiencyLevel proficiency, List<User> students) {
+        this.name = name;
+        this.capacity = capacity;
+        this.language = language;
+        this.proficiency = proficiency;
+        this.students = students;
+    }
+
     public void setFinished(boolean finished) {
         this.finished = finished;
     }
diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializer.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializer.java
new file mode 100644
index 00000000..e4d5bf50
--- /dev/null
+++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializer.java
@@ -0,0 +1,205 @@
+package org.fuseri.modulelanguageschool.datainitializer;
+
+
+import org.fuseri.modulelanguageschool.course.Course;
+import org.fuseri.modulelanguageschool.course.CourseRepository;
+import org.fuseri.modulelanguageschool.course.Language;
+import org.fuseri.modulelanguageschool.course.ProficiencyLevel;
+import org.fuseri.modulelanguageschool.lecture.Lecture;
+import org.fuseri.modulelanguageschool.lecture.LectureRepository;
+import org.fuseri.modulelanguageschool.user.Address;
+import org.fuseri.modulelanguageschool.user.User;
+import org.fuseri.modulelanguageschool.user.UserRepository;
+import org.fuseri.modulelanguageschool.user.UserType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+@Component
+public class DataInitializer {
+
+    private final CourseRepository courseRepository;
+    private final LectureRepository lectureRepository;
+    private final UserRepository userRepository;
+
+    Course c1;
+    Course c2;
+    Course c3;
+    Course c4;
+    Course c5;
+    Course c6;
+    private Lecture germanLectureIntro;
+    private User germanLecturer;
+    private User englishLecturer;
+    private Lecture englishLectureIntro;
+    private Lecture englishLectureTense;
+
+
+    @Autowired
+    public DataInitializer(CourseRepository courseRepository, LectureRepository lectureRepository,
+                           UserRepository userRepository) {
+        this.courseRepository = courseRepository;
+        this.lectureRepository = lectureRepository;
+        this.userRepository = userRepository;
+    }
+
+    public void drop() {
+        userRepository.deleteAll();
+        courseRepository.deleteAll();
+    }
+
+    public void initialize() {
+        drop();
+        initializeCourseAndLecture();
+        initializeUser();
+    }
+
+    private void initializeCourseAndLecture() {
+        c1 = new Course("German for Beginners", 25, Language.GERMAN, ProficiencyLevel.A1, new ArrayList<>());
+        c2 = new Course("English A1", 25, Language.ENGLISH, ProficiencyLevel.A1, new ArrayList<>());
+        c3 = new Course("English A2", 25, Language.ENGLISH, ProficiencyLevel.A2, new ArrayList<>());
+        c4 = new Course("English B1", 25, Language.ENGLISH, ProficiencyLevel.B1, new ArrayList<>());
+        c5 = new Course("English B2", 25, Language.ENGLISH, ProficiencyLevel.B2, new ArrayList<>());
+        c6 = new Course("Spanish B1", 25, Language.SPANISH, ProficiencyLevel.B1, new ArrayList<>());
+
+        courseRepository.saveAll(List.of(c1, c2, c3, c4, c5, c6));
+
+        germanLectureIntro = new Lecture(LocalDateTime.of(2023, 5, 2, 10, 0), LocalDateTime.of(2023, 5, 2, 12, 0),
+                "Introduction to course", 25, c1, germanLecturer);
+        var l2 = new Lecture(LocalDateTime.of(2023, 5, 4, 10, 0), LocalDateTime.of(2023, 5, 4, 12, 0),
+                "BegrĂĽĂźung und Vorstellung", 25, c1, germanLecturer);
+        var l3 = new Lecture(LocalDateTime.of(2023, 5, 9, 10, 0), LocalDateTime.of(2023, 5, 9, 12, 0),
+                "Mein Wohnort und meine Wohnung", 25, c1, germanLecturer);
+        var l4 = new Lecture(LocalDateTime.of(2023, 5, 11, 10, 0), LocalDateTime.of(2023, 5, 11, 12, 0),
+                "Essen und Trinken", 25, c1, germanLecturer);
+        var l5 = new Lecture(LocalDateTime.of(2023, 5, 16, 10, 0), LocalDateTime.of(2023, 5, 16, 12, 0),
+                "Meine Familie und Freunde", 25, c1, germanLecturer);
+
+        englishLectureIntro = new Lecture(LocalDateTime.of(2023, 5, 1, 10, 0), LocalDateTime.of(2023, 5, 1, 12, 0),
+                "Introduction to course", 25, c5, englishLecturer);
+        englishLectureTense = new Lecture(LocalDateTime.of(2023, 5, 6, 10, 0), LocalDateTime.of(2023, 5, 6, 12, 0),
+                "Repetition of english tenses", 25, c5, englishLecturer);
+        var l8 = new Lecture(LocalDateTime.of(2023, 5, 8, 10, 0), LocalDateTime.of(2023, 5, 8, 12, 0),
+                "Food", 25, c5, englishLecturer);
+        var l9 = new Lecture(LocalDateTime.of(2023, 5, 8, 10, 0), LocalDateTime.of(2023, 5, 8, 12, 0),
+                "School systems around the world", 25, c5, englishLecturer);
+        var l10 = new Lecture(LocalDateTime.of(2023, 5, 15, 10, 0), LocalDateTime.of(2023, 5, 15, 12, 0),
+                "Interview questions", 25, c5, englishLecturer);
+
+        lectureRepository.saveAll(List.of(germanLectureIntro, l2, l3, l4, l5, englishLectureIntro, englishLectureTense, l8, l9, l10));
+    }
+
+    private void initializeUser() {
+        // admin
+        var a1 = new User("johndoe", UserType.ADMIN, "password123", "john.doe@example.com", "John", "Doe",
+                new Address("USA", "New York", "Main Street", "123", "10001"));
+        var a2 = new User("janesmith", UserType.ADMIN, "password123", "jane.smith@example.com", "Jane", "Smith",
+                new Address("USA", "Los Angeles", "Broadway", "456", "90012"));
+
+        // lecturer
+        englishLecturer = new User("anaken", UserType.LECTURER, "password123", "ana.kentinsky@example.com", "Ana", "Kentinsky",
+                new Address("USA", "Los Angeles", "Hollywood Blvd", "456", "90028"));
+        var l4 = new User("michaeljones", UserType.LECTURER, "password123", "michael.jones@example.com", "Michael", "Jones",
+                new Address("UK", "London", "Baker St", "789", "NW1 6XE"));
+        var l5 = new User("clairedupont", UserType.LECTURER, "password123", "claire.dupont@example.com", "Claire", "Dupont",
+                new Address("France", "Paris", "Champs-Élysées", "456", "75008"));
+        germanLecturer = new User("maxmustermann", UserType.LECTURER, "password123", "max.mustermann@example.com", "Max", "Mustermann",
+                new Address("Germany", "Berlin", "Friedrichstrasse", "123", "10117"));
+
+        // students
+        User s7 = new User("samuelsmith", UserType.STUDENT, "password123", "samuel.smith@example.com", "Samuel", "Smith",
+                new Address("New York", "USA", "Fifth Ave", "100", "10019"));
+
+        User s8 = new User("jessicanguyen", UserType.STUDENT, "password123", "jessica.nguyen@example.com", "Jessica", "Nguyen",
+                new Address("Los Angeles", "USA", "Sunset Blvd", "789", "90046"));
+
+        User s9 = new User("peterhansen", UserType.STUDENT, "password123", "peter.hansen@example.com", "Peter", "Hansen",
+                new Address("London", "UK", "Oxford St", "234", "W1C 1JG"));
+
+        User s10 = new User("luciedupont", UserType.STUDENT, "password123", "lucie.dupont@example.com", "Lucie", "Dupont",
+                new Address("Paris", "France", "Rue de Rivoli", "15", "75001"));
+
+        User s11 = new User("hansschmidt", UserType.STUDENT, "password123", "hans.schmidt@example.com", "Hans", "Schmidt",
+                new Address("Berlin", "Germany", "Unter den Linden", "45", "10117"));
+
+        User s12 = new User("emmajones", UserType.STUDENT, "password123", "emma.jones@example.com", "Emma", "Jones",
+                new Address("New York", "USA", "Broadway", "456", "10003"));
+
+        User s13 = new User("oliversmith", UserType.STUDENT, "password123", "oliver.smith@example.com", "Oliver", "Smith",
+                new Address("London", "UK", "Baker Street", "22", "W1U 3BW"));
+
+        User s14 = new User("lauragarcia", UserType.STUDENT, "password123", "laura.garcia@example.com", "Laura", "Garcia",
+                new Address("Madrid", "Spain", "Calle Mayor", "18", "28013"));
+
+        User s15 = new User("felixmueller", UserType.STUDENT, "password123", "felix.mueller@example.com", "Felix", "Mueller",
+                new Address("Berlin", "Germany", "Torstrasse", "32", "10119"));
+
+        User s16 = new User("emiliedupont", UserType.STUDENT, "password123", "emilie.dupont@example.com", "Emilie", "Dupont",
+                new Address("Paris", "France", "Rue de Rivoli", "5", "75001"));
+
+        User s17 = new User("peterkovac", UserType.STUDENT, "password123", "pkovac@example.com", "Peter", "Kovac",
+                new Address("Bratislava", "Slovakia", "Main Street", "123", "12345"));
+
+        User s18 = new User("davidprachar", UserType.STUDENT, "password123", "prachar@example.com", "David", "Prachar",
+                new Address("Brno", "Czechia", "Main Street", "123", "12345"));
+
+        // language_proficiency
+        englishLecturer.addLanguageProficiency(Language.ENGLISH, ProficiencyLevel.C2N);
+        l4.addLanguageProficiency(Language.ENGLISH, ProficiencyLevel.C1N);
+        l4.addLanguageProficiency(Language.SPANISH, ProficiencyLevel.C1);
+        l5.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.C1);
+        germanLecturer.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.C1N);
+
+        s7.addLanguageProficiency(Language.ENGLISH, ProficiencyLevel.B1);
+        s9.addLanguageProficiency(Language.ENGLISH, ProficiencyLevel.B1);
+        s11.addLanguageProficiency(Language.ENGLISH, ProficiencyLevel.B1);
+
+        s8.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.B2);
+
+        s10.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.A1);
+        s11.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.A1);
+        s12.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.A1);
+        s13.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.A1);
+        s14.addLanguageProficiency(Language.GERMAN, ProficiencyLevel.A1);
+
+        s15.addLanguageProficiency(Language.CZECH, ProficiencyLevel.A1);
+
+        s16.addLanguageProficiency(Language.SPANISH, ProficiencyLevel.B1);
+        s17.addLanguageProficiency(Language.SPANISH, ProficiencyLevel.A2);
+        s18.addLanguageProficiency(Language.SPANISH, ProficiencyLevel.B1);
+
+        // course - user
+        courseEnrolStudents(c1, List.of(s10, s11, s12, s13, s14));
+        c2.enrolStudent(s7);
+        courseEnrolStudents(c3, List.of(s7, s9));
+        courseEnrolStudents(c4, List.of(s7, s9));
+        courseEnrolStudents(c5, List.of(s7, s9, s11));
+
+        // lecture - user
+        lectureEnrolStudents(germanLectureIntro, List.of(s10, s11, s12, s13, s14));
+        lectureEnrolStudents(englishLectureIntro, List.of(s7, s9));
+        lectureEnrolStudents(englishLectureIntro, List.of(s7, s9, s11));
+
+        userRepository.saveAll(List.of(a1, a2, englishLecturer, l4, l5, germanLecturer,
+                s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18));
+
+        courseRepository.save(c1);
+        lectureRepository.saveAll(List.of(germanLectureIntro, englishLectureIntro, englishLectureTense));
+    }
+
+    private void courseEnrolStudents(Course c, List<User> students) {
+        for (var s : students) {
+            c.enrolStudent(s);
+        }
+    }
+
+    private void lectureEnrolStudents(Lecture l, List<User> students) {
+        for (var s : students) {
+            l.enrolStudent(s);
+        }
+    }
+}
diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializerController.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializerController.java
new file mode 100644
index 00000000..40c01e84
--- /dev/null
+++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/datainitializer/DataInitializerController.java
@@ -0,0 +1,43 @@
+package org.fuseri.modulelanguageschool.datainitializer;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/datainitializer")
+public class DataInitializerController {
+    private final DataInitializer dataInitializer;
+
+    @Autowired
+    public DataInitializerController(DataInitializer dataInitializer) {
+        this.dataInitializer = dataInitializer;
+    }
+
+    @Operation(summary = "Seed language school database", description = "Seeds language school database. Drops all data first")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data initialized successfully."),
+    })
+    @PostMapping
+    public ResponseEntity<Void> initialize() {
+        dataInitializer.initialize();
+        return ResponseEntity.noContent().build();
+    }
+
+    @Operation(summary = "Drop language school database", description = "Drops all data from language school database")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "204", description = "Data dropped successfully."),
+    })
+    @DeleteMapping
+    public ResponseEntity<Void> drop() {
+        dataInitializer.drop();
+        return ResponseEntity.noContent().build();
+    }
+
+}
diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/lecture/Lecture.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/lecture/Lecture.java
index 14afc0a2..d0e001f8 100644
--- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/lecture/Lecture.java
+++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/lecture/Lecture.java
@@ -10,6 +10,7 @@ import org.fuseri.modulelanguageschool.course.Course;
 import org.fuseri.modulelanguageschool.user.User;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -38,6 +39,17 @@ public class Lecture extends DomainObject {
     @ManyToMany
     private List<User> students;
 
+    public Lecture(LocalDateTime lectureFrom, LocalDateTime lectureTo,
+                   String topic, Integer capacity, Course course, User lecturer) {
+        this.lectureFrom = lectureFrom;
+        this.lectureTo = lectureTo;
+        this.topic = topic;
+        this.capacity = capacity;
+        this.course = course;
+        this.lecturer = lecturer;
+        this.students = new ArrayList<>();
+    }
+
     public void enrolStudent(User student) {
         students.add(student);
     }
diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/User.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/User.java
index d1fb12b8..72ad3488 100644
--- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/User.java
+++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/User.java
@@ -7,6 +7,8 @@ import org.fuseri.modulelanguageschool.course.Course;
 import org.fuseri.modulelanguageschool.course.Language;
 import org.fuseri.modulelanguageschool.course.ProficiencyLevel;
 
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -46,6 +48,19 @@ public class User extends DomainObject {
     @ElementCollection
     private Map<Language, ProficiencyLevel> languageProficiency;
 
+    public User(String username, UserType userType, String password,
+                String email, String firstName, String lastName, Address address) {
+        this.username = username;
+        this.userType = userType;
+        this.password = password;
+        this.email = email;
+        this.firstName = firstName;
+        this.lastName = lastName;
+        this.address = address;
+        this.courses = new HashSet<>();
+        this.languageProficiency = new HashMap<>();
+    }
+
     public void addLanguageProficiency(Language language, ProficiencyLevel proficiencyLevel) {
         languageProficiency.put(language, proficiencyLevel);
     }
diff --git a/application/module-language-school/src/main/resources/drop.sql b/application/module-language-school/src/main/resources/drop.sql
deleted file mode 100644
index 9f9d5826..00000000
--- a/application/module-language-school/src/main/resources/drop.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-drop table if exists course cascade
-drop table if exists course_students cascade
-drop table if exists domain_user cascade
-drop table if exists lecture cascade
-drop table if exists lecture_students cascade
-drop table if exists user_course cascade
-drop table if exists user_language_proficiency cascade
\ No newline at end of file
diff --git a/application/module-language-school/src/main/resources/import.sql b/application/module-language-school/src/main/resources/import.sql
deleted file mode 100644
index 53371e8a..00000000
--- a/application/module-language-school/src/main/resources/import.sql
+++ /dev/null
@@ -1,128 +0,0 @@
--- I add ids manually, so I can better see what data are related
-
--- LANGUAGE
--- 0 - english
--- 1 - german
--- 2 - spanish
--- 3 - czech
-
--- PROFICIENCY
--- 0 - A1
--- 1 - A2
--- 2 - B1
--- 3 - B2
--- 4 - C1
--- 5 - C2
--- 6 - C1N
--- 7 - C2N
-
-
--- USER
--- admin
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (1, 'New York', 'USA', 123, 'Main Street', '10001', 'john.doe@example.com', 'John', 'Doe', 'password123', 'ADMIN', 'johndoe');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (2, 'Los Angeles', 'USA', 456, 'Broadway', '90012', 'jane.smith@example.com', 'Jane', 'Smith', 'password123', 'ADMIN', 'janesmith');
--- lecturer
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (3, 'Los Angeles', 'USA', 456, 'Hollywood Blvd', '90028', 'jane.smith@example.com', 'Jane', 'Smith', 'password123', 'LECTURER', 'janesmith');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (4, 'London', 'UK', 789, 'Baker St', 'NW1 6XE', 'michael.jones@example.com', 'Michael', 'Jones', 'password123', 'LECTURER', 'michaeljones');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (5, 'Paris', 'France', 456, 'Champs-Élysées', '75008', 'claire.dupont@example.com', 'Claire', 'Dupont', 'password123', 'LECTURER', 'clairedupont');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (6, 'Berlin', 'Germany', 123, 'Friedrichstrasse', '10117', 'max.mustermann@example.com', 'Max', 'Mustermann', 'password123', 'LECTURER', 'maxmustermann');
-
--- student
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (7, 'New York', 'USA', 100, 'Fifth Ave', '10019', 'samuel.smith@example.com', 'Samuel', 'Smith', 'password123', 'STUDENT', 'samuelsmith');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (8, 'Los Angeles', 'USA', 789, 'Sunset Blvd', '90046', 'jessica.nguyen@example.com', 'Jessica', 'Nguyen', 'password123', 'STUDENT', 'jessicanguyen');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (9, 'London', 'UK', 234, 'Oxford St', 'W1C 1JG', 'peter.hansen@example.com', 'Peter', 'Hansen', 'password123', 'STUDENT', 'peterhansen');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (10, 'Paris', 'France', 15, 'Rue de Rivoli', '75001', 'lucie.dupont@example.com', 'Lucie', 'Dupont', 'password123', 'STUDENT', 'luciedupont');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (11, 'Berlin', 'Germany', 45, 'Unter den Linden', '10117', 'hans.schmidt@example.com', 'Hans', 'Schmidt', 'password123', 'STUDENT', 'hansschmidt');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (12, 'New York', 'USA', 456, 'Broadway', '10003', 'emma.jones@example.com', 'Emma', 'Jones', 'password123', 'STUDENT', 'emmajones');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (13, 'London', 'UK', 22, 'Baker Street', 'W1U 3BW', 'oliver.smith@example.com', 'Oliver', 'Smith', 'password123', 'STUDENT', 'oliversmith');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (14, 'Madrid', 'Spain', 18, 'Calle Mayor', '28013', 'laura.garcia@example.com', 'Laura', 'Garcia', 'password123', 'STUDENT', 'lauragarcia');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (15, 'Berlin', 'Germany', 32, 'Torstrasse', '10119', 'felix.mueller@example.com', 'Felix', 'Mueller', 'password123', 'STUDENT', 'felixmueller');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (16, 'Paris', 'France', 5, 'Rue de Rivoli', '75001', 'emilie.dupont@example.com', 'Emilie', 'Dupont', 'password123', 'STUDENT', 'emiliedupont');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (17, 'Bratislava', 'Slovakia', 123, 'Main Street', '12345', 'pkovac@example.com', 'Peter', 'Kovac', 'password123', 'STUDENT', 'peterkovac');
-INSERT INTO domain_user (id, city, country, house_number, street, zip, email, first_name, last_name, password, user_type, username) VALUES (18, 'Brno', 'Czechia', 123, 'Main Street', '12345', 'prachar@example.com', 'David', 'Prachar', 'password123', 'STUDENT', 'davidprachar');
-
-ALTER TABLE domain_user ALTER COLUMN id RESTART WITH 19;
-
-
--- language_proficiency
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (3, 0, 6);
-
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (4, 0, 7);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (4, 2, 4);
-
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (5, 2, 5);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (5, 3, 6);
-
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (6, 1, 7);
-
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (7, 0, 4);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (8, 1, 3);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (9, 0, 2);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (10, 3, 4);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (11, 3, 3);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (12, 2, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (13, 2, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (14, 2, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (15, 1, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (16, 1, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (17, 1, 1);
-INSERT INTO user_language_proficiency (user_id, language_proficiency_key, language_proficiency) VALUES (18, 1, 1);
-
-
--- COURSE
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (1, 25, false, 'GERMAN', 'German for Beginners', 'A1');
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (2, 25, false, 'ENGLISH', 'English A1', 'A1');
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (3, 25, false, 'ENGLISH', 'English A2', 'A2');
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (4, 25, false, 'ENGLISH', 'English B1', 'B1');
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (5, 25, false, 'ENGLISH', 'English B2', 'B2');
-INSERT INTO course (id, capacity, finished, language, name, proficiency) VALUES (6, 25, false, 'SPANISH', 'Spanish B1', 'B1');
-
-ALTER TABLE course ALTER COLUMN id RESTART WITH 4;
-
-
--- COURSE-USER
-INSERT INTO user_course (student_id, course_id) VALUES (8, 1);
-INSERT INTO user_course (student_id, course_id) VALUES (15, 1);
-INSERT INTO user_course (student_id, course_id) VALUES (16, 1);
-INSERT INTO user_course (student_id, course_id) VALUES (17, 1);
-INSERT INTO user_course (student_id, course_id) VALUES (18, 1);
-
-INSERT INTO user_course (student_id, course_id) VALUES (7, 2);
-
-INSERT INTO user_course (student_id, course_id) VALUES (7, 3);
-INSERT INTO user_course (student_id, course_id) VALUES (9, 3);
-
-INSERT INTO user_course (student_id, course_id) VALUES (7, 4);
-INSERT INTO user_course (student_id, course_id) VALUES (9, 4);
-
-INSERT INTO user_course (student_id, course_id) VALUES (7, 5);
-INSERT INTO user_course (student_id, course_id) VALUES (9, 5);
-
-
--- LECTURE
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (1, 25, 1, '2023-05-02 10:00:00', '2023-05-02 12:00:00', 6, 'Introduction to course')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (2, 25, 1, '2023-05-04 10:00:00', '2023-05-04 12:00:00', 6, 'BegrĂĽĂźung und Vorstellung')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (3, 25, 1, '2023-05-09 10:00:00', '2023-05-09 12:00:00', 6, 'Mein Wohnort und meine Wohnung')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (4, 25, 1, '2023-05-11 10:00:00', '2023-05-11 12:00:00', 6, 'Essen und Trinken')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (5, 25, 1, '2023-05-16 10:00:00', '2023-05-16 12:00:00', 6, 'Meine Familie und Freunde')
-
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (6, 25, 5, '2023-05-01 10:00:00', '2023-05-01 12:00:00', 3, 'Introduction to course')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (7, 25, 5, '2023-05-06 10:00:00', '2023-05-06 12:00:00', 3, 'Repetition of english times')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (8, 25, 5, '2023-05-08 10:00:00', '2023-05-08 12:00:00', 3, 'Food')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (9, 25, 5, '2023-05-08 10:00:00', '2023-05-08 12:00:00', 3, 'School systems around the world')
-insert into lecture (id, capacity, course_id, lecture_from, lecture_to, lecturer_id, topic) values (10, 25, 5, '2023-05-15 10:00:00', '2023-05-15 12:00:00', 3, 'Interview questions')
-
-ALTER TABLE lecture ALTER COLUMN id RESTART WITH 10;
-
-
--- lecture-user
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (8, 1);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (15, 1);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (16, 1);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (17, 1);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (18, 1);
-
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (7, 6);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (9, 6);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (7, 7);
-INSERT INTO lecture_students (students_id, lecture_id) VALUES (9, 7);
\ No newline at end of file
-- 
GitLab