Skip to content

Commit 62a7f20

Browse files
authored
Merge pull request #10 from hackathon-soa/feat/#3
feat: 엔티티 설계 완료
2 parents 817bf7d + 262cc8c commit 62a7f20

7 files changed

Lines changed: 79 additions & 3 deletions

File tree

src/main/java/hackathon/soa/entity/Course.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.NoArgsConstructor;
88

99
import java.time.LocalDateTime;
10+
import java.util.ArrayList;
1011
import java.util.List;
1112

1213
@Entity
@@ -45,4 +46,8 @@ public class Course extends BaseEntity {
4546

4647
@Column(nullable = false, name = "end_time", columnDefinition = "datetime")
4748
private LocalDateTime endTime;
49+
50+
@OneToMany(mappedBy = "course", cascade = CascadeType.ALL, orphanRemoval = true)
51+
private List<Like> likes = new ArrayList<>();
52+
4853
}

src/main/java/hackathon/soa/entity/CourseSegment.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import lombok.NoArgsConstructor;
88

99
import java.time.LocalDateTime;
10+
import java.util.ArrayList;
11+
import java.util.List;
1012

1113
@Entity
1214
@Table(name = "course_segment")
@@ -32,4 +34,8 @@ public class CourseSegment extends BaseEntity {
3234

3335
@Column(nullable = false, name = "end_time", columnDefinition = "datetime")
3436
private LocalDateTime endTime;
37+
38+
@OneToMany(mappedBy = "courseSegment", cascade = CascadeType.ALL, orphanRemoval = true)
39+
private List<SegmentParticipation> segmentParticipations = new ArrayList<>();
40+
3541
}
Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
package hackathon.soa.entity;
22

3-
public class Like {
3+
import jakarta.persistence.*;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
9+
@Entity
10+
@Table(name = "course_segment")
11+
@NoArgsConstructor
12+
@Getter
13+
@Builder
14+
@AllArgsConstructor
15+
public class Like extends BaseEntity {
16+
17+
@Id
18+
@GeneratedValue(strategy = GenerationType.AUTO)
19+
private Long id;
20+
21+
@ManyToOne(fetch = FetchType.LAZY)
22+
@JoinColumn(name = "member_id")
23+
private Member member;
24+
25+
@ManyToOne(fetch = FetchType.LAZY)
26+
@JoinColumn(name = "course_id")
27+
private Course course;
428
}

src/main/java/hackathon/soa/entity/Member.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,11 @@ public class Member extends BaseEntity {
7272

7373
@OneToMany(mappedBy = "targetMember", cascade = CascadeType.ALL, orphanRemoval = true)
7474
private List<TemperatureMapping> temperaturesReceived = new ArrayList<>();
75+
76+
@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
77+
private List<SegmentParticipation> segmentParticipations = new ArrayList<>();
78+
79+
@OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
80+
private List<Like> likes = new ArrayList<>();
81+
7582
}
Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,33 @@
11
package hackathon.soa.entity;
22

3-
public class SegmentParticipation {
3+
import jakarta.persistence.*;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
9+
@Entity
10+
@Table(name = "segment_participation")
11+
@NoArgsConstructor
12+
@Getter
13+
@Builder
14+
@AllArgsConstructor
15+
public class SegmentParticipation extends BaseEntity {
16+
17+
@Id
18+
@GeneratedValue(strategy = GenerationType.IDENTITY)
19+
private Long id;
20+
21+
@ManyToOne(fetch = FetchType.LAZY)
22+
@JoinColumn(name = "member_id")
23+
private Member member;
24+
25+
@ManyToOne(fetch = FetchType.LAZY)
26+
@JoinColumn(name = "course_segment_id")
27+
private CourseSegment courseSegment;
28+
29+
@Enumerated(EnumType.STRING)
30+
@Column(nullable = false, name = "course_segment_status", columnDefinition = "varchar(100)")
31+
private SegmentParticipationStatus status;
32+
433
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package hackathon.soa.entity;
2+
3+
public enum SegmentParticipationStatus {
4+
APPROVED, REJECTED, PENDING
5+
}

src/main/java/hackathon/soa/entity/TravelStyle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ public class TravelStyle extends BaseEntity {
2424
private String name;
2525

2626
@OneToMany(mappedBy = "travelStyle", cascade = CascadeType.ALL)
27-
private List<TravelStyle> travelStyles = new ArrayList<>();
27+
private List<CourseTravelStyle> courseTravelStyles = new ArrayList<>();
2828
}

0 commit comments

Comments
 (0)