Skip to content

Commit 04b6eec

Browse files
authored
Merge pull request #22 from team-MoPlus/feature/#21
Feature/#21 문항, 새끼문항, 개념태그 엔티티 구현
2 parents 93c3dd1 + 76bb72b commit 04b6eec

File tree

6 files changed

+146
-0
lines changed

6 files changed

+146
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.moplus.moplus_server.domain.concept.domain;
2+
3+
import com.moplus.moplus_server.global.common.BaseEntity;
4+
import jakarta.persistence.Column;
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.GeneratedValue;
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.Id;
9+
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
11+
12+
@Getter
13+
@Entity
14+
@NoArgsConstructor
15+
public class ConceptTag extends BaseEntity {
16+
17+
@Id
18+
@GeneratedValue(strategy = GenerationType.IDENTITY)
19+
@Column(name = "concept_tag_id")
20+
Long id;
21+
22+
String name;
23+
24+
public ConceptTag(String name) {
25+
this.name = name;
26+
}
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.moplus.moplus_server.domain.concept.repository;
2+
3+
import com.moplus.moplus_server.domain.concept.domain.ConceptTag;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface ConceptTagRepository extends JpaRepository<ConceptTag, Long> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.moplus.moplus_server.domain.problem.domain;
2+
3+
import jakarta.persistence.CollectionTable;
4+
import jakarta.persistence.Column;
5+
import jakarta.persistence.ElementCollection;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.GeneratedValue;
8+
import jakarta.persistence.GenerationType;
9+
import jakarta.persistence.Id;
10+
import jakarta.persistence.JoinColumn;
11+
import java.util.Set;
12+
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
15+
@Getter
16+
@Entity
17+
@NoArgsConstructor
18+
public class ChildProblem {
19+
20+
@Id
21+
@GeneratedValue(strategy = GenerationType.IDENTITY)
22+
@Column(name = "problem_id")
23+
Long id;
24+
@ElementCollection
25+
@CollectionTable(name = "child_problem_concept", joinColumns = @JoinColumn(name = "concept_tag_id"))
26+
Set<Long> conceptTagIds;
27+
private String problemImageUrl;
28+
private String answer;
29+
30+
public ChildProblem(String problemImageUrl, String answer, Set<Long> conceptTagIds) {
31+
this.problemImageUrl = problemImageUrl;
32+
this.answer = answer;
33+
this.conceptTagIds = conceptTagIds;
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.moplus.moplus_server.domain.problem.domain;
2+
3+
import com.moplus.moplus_server.global.common.BaseEntity;
4+
import jakarta.persistence.CascadeType;
5+
import jakarta.persistence.CollectionTable;
6+
import jakarta.persistence.Column;
7+
import jakarta.persistence.ElementCollection;
8+
import jakarta.persistence.Entity;
9+
import jakarta.persistence.FetchType;
10+
import jakarta.persistence.GeneratedValue;
11+
import jakarta.persistence.GenerationType;
12+
import jakarta.persistence.Id;
13+
import jakarta.persistence.JoinColumn;
14+
import jakarta.persistence.OneToMany;
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
import java.util.Set;
18+
import lombok.Getter;
19+
import lombok.NoArgsConstructor;
20+
21+
@Getter
22+
@Entity
23+
@NoArgsConstructor
24+
public class Problem extends BaseEntity {
25+
26+
@Id
27+
@GeneratedValue(strategy = GenerationType.IDENTITY)
28+
@Column(name = "problem_id")
29+
Long id;
30+
31+
String practiceTestId;
32+
int number;
33+
int answer;
34+
String comment;
35+
String mainProblemImageUrl;
36+
String mainAnalysisImageUrl;
37+
String readingTipImageUrl;
38+
String seniorTipImageUrl;
39+
String prescriptionImageUrl;
40+
41+
@ElementCollection
42+
@CollectionTable(name = "problem_concept", joinColumns = @JoinColumn(name = "concept_tag_id"))
43+
Set<Long> conceptTagIds;
44+
45+
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
46+
@JoinColumn(name = "problem_id")
47+
private List<ChildProblem> childProblems = new ArrayList<>();
48+
49+
public Problem(String practiceTestId, int number, int answer, String comment, String mainProblemImageUrl,
50+
String mainAnalysisImageUrl, String readingTipImageUrl, String seniorTipImageUrl,
51+
String prescriptionImageUrl, Set<Long> conceptTagIds) {
52+
this.practiceTestId = practiceTestId;
53+
this.number = number;
54+
this.answer = answer;
55+
this.comment = comment;
56+
this.mainProblemImageUrl = mainProblemImageUrl;
57+
this.mainAnalysisImageUrl = mainAnalysisImageUrl;
58+
this.readingTipImageUrl = readingTipImageUrl;
59+
this.seniorTipImageUrl = seniorTipImageUrl;
60+
this.prescriptionImageUrl = prescriptionImageUrl;
61+
this.conceptTagIds = conceptTagIds;
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.moplus.moplus_server.domain.problem.repository;
2+
3+
import com.moplus.moplus_server.domain.problem.domain.ChildProblem;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface ChildProblemRepository extends JpaRepository<ChildProblem, Long> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.moplus.moplus_server.domain.problem.repository;
2+
3+
import com.moplus.moplus_server.domain.problem.domain.Problem;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface ProblemRepository extends JpaRepository<Problem, Long> {
7+
}

0 commit comments

Comments
 (0)