diff --git a/pom.xml b/pom.xml
index e2432201b68d8a198a229e8520b7d87817ee043d..8e0c6095cb665275c7c8c2d337a3df21d044d240 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,8 @@
<properties>
<java.version>11</java.version>
+
+ <projectlombok.version>1.18.12</projectlombok.version>
</properties>
<dependencies>
@@ -45,6 +47,12 @@
</exclusion>
</exclusions>
</dependency>
+
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${projectlombok.version}</version>
+ </dependency>
</dependencies>
<build>
diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java
index 41072b944a0dbcb6d5d7054d6c408019e9822abc..41df739fe160b973085f28a82d69766179afaceb 100644
--- a/src/main/java/com/example/demo/DemoApplication.java
+++ b/src/main/java/com/example/demo/DemoApplication.java
@@ -1,5 +1,9 @@
package com.example.demo;
+import com.example.demo.domain.GameLevel;
+import com.example.demo.domain.Person;
+import com.example.demo.repository.GameLevelRepository;
+import com.example.demo.repository.PersonRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
@@ -9,6 +13,7 @@ import org.springframework.context.annotation.Bean;
import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
@SpringBootApplication
public class DemoApplication {
@@ -56,4 +61,22 @@ public class DemoApplication {
"\t" + personRepository.findByName(person.getName()).toString()));
};
}
+
+ @Bean
+ CommandLineRunner anotherDemo(GameLevelRepository gameLevelRepository) {
+ return args -> {
+
+ gameLevelRepository.deleteAll();
+
+ GameLevel gameLevel = new GameLevel();
+ gameLevel.setTitle("Title");
+
+
+ GameLevel savedGameLevel = gameLevelRepository.save(gameLevel);
+ log.info("Saved game level: {}", savedGameLevel);
+
+ Optional<GameLevel> foundGameLevel = gameLevelRepository.findById(savedGameLevel.getId());
+ log.info("Saved game level: {}", foundGameLevel);
+ };
+ }
}
diff --git a/src/main/java/com/example/demo/domain/AssessmentLevel.java b/src/main/java/com/example/demo/domain/AssessmentLevel.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b813c47d9ce32c6e975eb600d945e805b006e41
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/AssessmentLevel.java
@@ -0,0 +1,19 @@
+package com.example.demo.domain;
+
+import lombok.Data;
+import org.neo4j.ogm.annotation.GeneratedValue;
+import org.neo4j.ogm.annotation.Id;
+import org.neo4j.ogm.annotation.NodeEntity;
+
+@NodeEntity
+@Data
+public class AssessmentLevel extends BaseLevel {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String assessmentType;
+
+
+}
diff --git a/src/main/java/com/example/demo/domain/BaseLevel.java b/src/main/java/com/example/demo/domain/BaseLevel.java
new file mode 100644
index 0000000000000000000000000000000000000000..988e4a5cfa07e39c503a8271c32338061d97e207
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/BaseLevel.java
@@ -0,0 +1,12 @@
+package com.example.demo.domain;
+
+import lombok.Data;
+import org.neo4j.ogm.annotation.NodeEntity;
+
+@NodeEntity
+@Data
+public class BaseLevel {
+ private String title;
+ private String estimatedDuration;
+ private Long maxScore;
+}
diff --git a/src/main/java/com/example/demo/domain/GameLevel.java b/src/main/java/com/example/demo/domain/GameLevel.java
new file mode 100644
index 0000000000000000000000000000000000000000..27a33160295e0aa5fe9c92f28c2ae91ad32b07a9
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/GameLevel.java
@@ -0,0 +1,29 @@
+package com.example.demo.domain;
+
+import lombok.Data;
+import org.neo4j.ogm.annotation.GeneratedValue;
+import org.neo4j.ogm.annotation.Id;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+import java.util.List;
+
+
+@NodeEntity
+@Data
+public class GameLevel extends BaseLevel {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String content;
+ private String solutionPenalized;
+ private String flag;
+ private String solution;
+ private String attachments;
+ private String incorrectFlagLimit;
+
+ @Relationship(type = "GAME_LEVEL_HINTS", direction = Relationship.UNDIRECTED)
+ private List<Hint> hints;
+}
diff --git a/src/main/java/com/example/demo/domain/Hint.java b/src/main/java/com/example/demo/domain/Hint.java
new file mode 100644
index 0000000000000000000000000000000000000000..e4a2c4148c1142ff297daddc1d4b74b94f09067d
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/Hint.java
@@ -0,0 +1,18 @@
+package com.example.demo.domain;
+
+import lombok.Data;
+import org.neo4j.ogm.annotation.GeneratedValue;
+import org.neo4j.ogm.annotation.Id;
+
+@Data
+public class Hint {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String title;
+ private String content;
+ private String hintPenalty;
+ private String orderInLevel;
+}
diff --git a/src/main/java/com/example/demo/domain/InfoLevel.java b/src/main/java/com/example/demo/domain/InfoLevel.java
new file mode 100644
index 0000000000000000000000000000000000000000..eaed3579d28528654130b59428b4c11a0c462e51
--- /dev/null
+++ b/src/main/java/com/example/demo/domain/InfoLevel.java
@@ -0,0 +1,15 @@
+package com.example.demo.domain;
+
+import org.neo4j.ogm.annotation.GeneratedValue;
+import org.neo4j.ogm.annotation.Id;
+import org.neo4j.ogm.annotation.NodeEntity;
+
+@NodeEntity
+public class InfoLevel extends BaseLevel {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String content;
+}
diff --git a/src/main/java/com/example/demo/Person.java b/src/main/java/com/example/demo/domain/Person.java
similarity index 97%
rename from src/main/java/com/example/demo/Person.java
rename to src/main/java/com/example/demo/domain/Person.java
index e764ec890d56851b2fa3574686c90ba673a2942c..bea7fdb3a3e058aab92209952a810ba9e29e2711 100644
--- a/src/main/java/com/example/demo/Person.java
+++ b/src/main/java/com/example/demo/domain/Person.java
@@ -1,5 +1,5 @@
-package com.example.demo;
+package com.example.demo.domain;
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
diff --git a/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java b/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f053645c82c07de09cdcf42c8ce45102c1c84a4
--- /dev/null
+++ b/src/main/java/com/example/demo/repository/AssessmentLevelRepository.java
@@ -0,0 +1,7 @@
+package com.example.demo.repository;
+
+import com.example.demo.domain.AssessmentLevel;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+
+public interface AssessmentLevelRepository extends Neo4jRepository<AssessmentLevel, Long> {
+}
diff --git a/src/main/java/com/example/demo/repository/BaseLevelRepository.java b/src/main/java/com/example/demo/repository/BaseLevelRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..51a0b97bebdd447d128acf5abe16805ff7886cf0
--- /dev/null
+++ b/src/main/java/com/example/demo/repository/BaseLevelRepository.java
@@ -0,0 +1,7 @@
+package com.example.demo.repository;
+
+import com.example.demo.domain.BaseLevel;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+
+public interface BaseLevelRepository extends Neo4jRepository<BaseLevel, Long> {
+}
diff --git a/src/main/java/com/example/demo/repository/GameLevelRepository.java b/src/main/java/com/example/demo/repository/GameLevelRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..92a29e07abe78ab9515dd6cf27d881e594ec647b
--- /dev/null
+++ b/src/main/java/com/example/demo/repository/GameLevelRepository.java
@@ -0,0 +1,7 @@
+package com.example.demo.repository;
+
+import com.example.demo.domain.GameLevel;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+
+public interface GameLevelRepository extends Neo4jRepository<GameLevel, Long> {
+}
diff --git a/src/main/java/com/example/demo/PersonRepository.java b/src/main/java/com/example/demo/repository/PersonRepository.java
similarity index 69%
rename from src/main/java/com/example/demo/PersonRepository.java
rename to src/main/java/com/example/demo/repository/PersonRepository.java
index 7d1a977f1f0fadef6e1e88e5cb97b50a1a005080..a4ef5786a2fe6b10bbe7b64c520ef2caa2dac584 100644
--- a/src/main/java/com/example/demo/PersonRepository.java
+++ b/src/main/java/com/example/demo/repository/PersonRepository.java
@@ -1,5 +1,6 @@
-package com.example.demo;
+package com.example.demo.repository;
+import com.example.demo.domain.Person;
import org.springframework.data.repository.CrudRepository;
public interface PersonRepository extends CrudRepository<Person, Long> {