diff --git a/src/main/java/oncoding/concoder/model/.gitkeep b/src/main/java/oncoding/concoder/model/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/oncoding/concoder/model/Category.java b/src/main/java/oncoding/concoder/model/Category.java new file mode 100644 index 0000000..b1ad847 --- /dev/null +++ b/src/main/java/oncoding/concoder/model/Category.java @@ -0,0 +1,17 @@ +package oncoding.concoder.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.validation.constraints.NotNull; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Category extends JpaBaseEntity { + @Column + @NotNull + private String name; +} diff --git a/src/main/java/oncoding/concoder/model/JpaBaseEntity.java b/src/main/java/oncoding/concoder/model/JpaBaseEntity.java new file mode 100644 index 0000000..ab1b6d6 --- /dev/null +++ b/src/main/java/oncoding/concoder/model/JpaBaseEntity.java @@ -0,0 +1,15 @@ +package oncoding.concoder.model; + +import java.util.UUID; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import lombok.Getter; + +@Getter +@MappedSuperclass +public class JpaBaseEntity { + @Id + @GeneratedValue + private UUID id; +} diff --git a/src/main/java/oncoding/concoder/model/Level.java b/src/main/java/oncoding/concoder/model/Level.java new file mode 100644 index 0000000..94cac7f --- /dev/null +++ b/src/main/java/oncoding/concoder/model/Level.java @@ -0,0 +1,17 @@ +package oncoding.concoder.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.validation.constraints.NotNull; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Level extends JpaBaseEntity { + @Column + @NotNull + private String name; +} diff --git a/src/main/java/oncoding/concoder/model/Problem.java b/src/main/java/oncoding/concoder/model/Problem.java new file mode 100644 index 0000000..e6b02ad --- /dev/null +++ b/src/main/java/oncoding/concoder/model/Problem.java @@ -0,0 +1,41 @@ +package oncoding.concoder.model; + +import java.util.ArrayList; +import java.util.List; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.validation.constraints.NotNull; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Problem extends JpaBaseEntity { + @Column(unique = true) + @NotNull + private Integer number; + + @Column + @NotNull + private String title; + + @Column + private Float rate; + + @Column + @NotNull + private String content; + + @ManyToOne(fetch = FetchType.EAGER) + private Level level; + + @OneToMany(fetch = FetchType.EAGER, mappedBy = "problem") + private List categories = new ArrayList<>(); + +} diff --git a/src/main/java/oncoding/concoder/model/ProblemCategory.java b/src/main/java/oncoding/concoder/model/ProblemCategory.java new file mode 100644 index 0000000..38588c5 --- /dev/null +++ b/src/main/java/oncoding/concoder/model/ProblemCategory.java @@ -0,0 +1,18 @@ +package oncoding.concoder.model; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class ProblemCategory extends JpaBaseEntity { + @ManyToOne + private Problem problem; + + @ManyToOne + private Category category; +} diff --git a/src/main/java/oncoding/concoder/repository/.gitkeep b/src/main/java/oncoding/concoder/repository/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/oncoding/concoder/repository/CategoryRepository.java b/src/main/java/oncoding/concoder/repository/CategoryRepository.java new file mode 100644 index 0000000..d53c55a --- /dev/null +++ b/src/main/java/oncoding/concoder/repository/CategoryRepository.java @@ -0,0 +1,9 @@ +package oncoding.concoder.repository; + +import java.util.UUID; +import oncoding.concoder.model.Category; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CategoryRepository extends JpaRepository { + +} diff --git a/src/main/java/oncoding/concoder/repository/LevelRepository.java b/src/main/java/oncoding/concoder/repository/LevelRepository.java new file mode 100644 index 0000000..dca73e9 --- /dev/null +++ b/src/main/java/oncoding/concoder/repository/LevelRepository.java @@ -0,0 +1,9 @@ +package oncoding.concoder.repository; + +import java.util.UUID; +import oncoding.concoder.model.Level; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface LevelRepository extends JpaRepository { + +} diff --git a/src/main/java/oncoding/concoder/repository/ProblemCategoryRepository.java b/src/main/java/oncoding/concoder/repository/ProblemCategoryRepository.java new file mode 100644 index 0000000..21501fb --- /dev/null +++ b/src/main/java/oncoding/concoder/repository/ProblemCategoryRepository.java @@ -0,0 +1,9 @@ +package oncoding.concoder.repository; + +import java.util.UUID; +import oncoding.concoder.model.ProblemCategory; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProblemCategoryRepository extends JpaRepository { + +} diff --git a/src/main/java/oncoding/concoder/repository/ProblemRepository.java b/src/main/java/oncoding/concoder/repository/ProblemRepository.java new file mode 100644 index 0000000..b8a8fe5 --- /dev/null +++ b/src/main/java/oncoding/concoder/repository/ProblemRepository.java @@ -0,0 +1,9 @@ +package oncoding.concoder.repository; + +import java.util.UUID; +import oncoding.concoder.model.Problem; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProblemRepository extends JpaRepository { + +}