Skip to content

Commit d022ad6

Browse files
committed
chore(project): JPA 도메인 연결 (#65)
- 패키지 도메인 기반 구성 - entity 연결 Closes #65
1 parent 29c8225 commit d022ad6

26 files changed

+992
-0
lines changed

.github/workflows/dev-server-cicd.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
./gradlew build
3737
shell: bash
3838

39+
3940
- name: Configure AWS credentials
4041
if: ${{ github.ref == 'refs/heads/develop'}}
4142
uses: aws-actions/configure-aws-credentials@v4
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.project200.undabang.chat.entity;
2+
3+
import com.project200.undabang.member.entity.Member;
4+
import jakarta.persistence.*;
5+
import jakarta.validation.constraints.NotNull;
6+
import jakarta.validation.constraints.Size;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import org.hibernate.annotations.ColumnDefault;
10+
11+
import java.time.LocalDateTime;
12+
13+
@Getter
14+
@Setter
15+
@Entity
16+
@Table(name = "chats")
17+
public class Chat {
18+
@Id
19+
@Column(name = "chat_id", nullable = false)
20+
private Long id;
21+
22+
@NotNull
23+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
24+
@JoinColumn(name = "chatroom_id", nullable = false)
25+
private Chatroom chatroom;
26+
27+
@NotNull
28+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
29+
@JoinColumn(name = "sender_id", nullable = false)
30+
private Member sender;
31+
32+
@Size(max = 500)
33+
@NotNull
34+
@Column(name = "chat_content", nullable = false, length = 500)
35+
private String chatContent;
36+
37+
@NotNull
38+
@ColumnDefault("0")
39+
@Column(name = "chat_is_read", nullable = false)
40+
private Boolean chatIsRead = false;
41+
42+
@NotNull
43+
@ColumnDefault("CURRENT_TIMESTAMP")
44+
@Column(name = "chat_sended_at", nullable = false)
45+
private LocalDateTime chatSendedAt = LocalDateTime.now();
46+
47+
@Column(name = "chat_deleted_at")
48+
private LocalDateTime chatDeletedAt;
49+
50+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.project200.undabang.chat.entity;
2+
3+
import com.project200.undabang.member.entity.Member;
4+
import jakarta.persistence.*;
5+
import jakarta.validation.constraints.NotNull;
6+
import lombok.Getter;
7+
import lombok.Setter;
8+
import org.hibernate.annotations.ColumnDefault;
9+
10+
import java.time.LocalDateTime;
11+
12+
@Getter
13+
@Setter
14+
@Entity
15+
@Table(name = "chatrooms")
16+
public class Chatroom {
17+
@Id
18+
@Column(name = "chatroom_id", nullable = false)
19+
private Long id;
20+
21+
@NotNull
22+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
23+
@JoinColumn(name = "sender_id", nullable = false)
24+
private Member sender;
25+
26+
@NotNull
27+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
28+
@JoinColumn(name = "receiver_id", nullable = false)
29+
private Member receiver;
30+
31+
@NotNull
32+
@ColumnDefault("CURRENT_TIMESTAMP")
33+
@Column(name = "chatroom_created_at", nullable = false)
34+
private LocalDateTime chatroomCreatedAt = LocalDateTime.now();
35+
36+
@Column(name = "chatroom_deleted_at")
37+
private LocalDateTime chatroomDeletedAt;
38+
39+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.project200.undabang.comment.entity;
2+
3+
import com.project200.undabang.member.entity.Member;
4+
import com.project200.undabang.post.entity.Post;
5+
import jakarta.persistence.*;
6+
import jakarta.validation.constraints.NotNull;
7+
import jakarta.validation.constraints.Size;
8+
import lombok.Getter;
9+
import lombok.Setter;
10+
import org.hibernate.annotations.ColumnDefault;
11+
12+
import java.time.LocalDateTime;
13+
14+
@Getter
15+
@Setter
16+
@Entity
17+
@Table(name = "comments")
18+
public class Comment {
19+
@Id
20+
@Column(name = "comment_id", nullable = false)
21+
private Long id;
22+
23+
@NotNull
24+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
25+
@JoinColumn(name = "member_id", nullable = false)
26+
private Member member;
27+
28+
@NotNull
29+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
30+
@JoinColumn(name = "post_id", nullable = false)
31+
private Post post;
32+
33+
@Size(max = 255)
34+
@NotNull
35+
@Column(name = "comment_content", nullable = false)
36+
private String commentContent;
37+
38+
@org.hibernate.annotations.Comment("관리자 제제 시 1")
39+
@ColumnDefault("0")
40+
@Column(name = "comment_is_reported")
41+
private Boolean commentIsReported = false;
42+
43+
@NotNull
44+
@ColumnDefault("CURRENT_TIMESTAMP")
45+
@Column(name = "comment_created_at", nullable = false)
46+
private LocalDateTime commentCreatedAt = LocalDateTime.now();
47+
48+
@Column(name = "comment_deleted_at")
49+
private LocalDateTime commentDeletedAt;
50+
51+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.project200.undabang.common.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.Id;
6+
import jakarta.persistence.Table;
7+
import jakarta.validation.constraints.NotNull;
8+
import jakarta.validation.constraints.Size;
9+
import lombok.Getter;
10+
import lombok.Setter;
11+
import org.hibernate.annotations.ColumnDefault;
12+
import org.hibernate.annotations.Comment;
13+
14+
import java.time.LocalDateTime;
15+
16+
@Getter
17+
@Setter
18+
@Entity
19+
@Table(name = "pictures")
20+
public class Picture {
21+
@Id
22+
@Column(name = "picture_id", nullable = false)
23+
private Long id;
24+
25+
@Size(max = 255)
26+
@Column(name = "picture_name")
27+
private String pictureName;
28+
29+
@Size(max = 10)
30+
@Column(name = "picture_extension", length = 10)
31+
private String pictureExtension;
32+
33+
@Comment("바이트 단위")
34+
@Column(name = "picture_size")
35+
private Integer pictureSize;
36+
37+
@Size(max = 255)
38+
@Column(name = "picture_url")
39+
private String pictureUrl;
40+
41+
@NotNull
42+
@ColumnDefault("CURRENT_TIMESTAMP")
43+
@Column(name = "picture_created_at", nullable = false)
44+
private LocalDateTime pictureCreatedAt = LocalDateTime.now();
45+
46+
@Column(name = "picture_deleted_at")
47+
private LocalDateTime pictureDeletedAt;
48+
49+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.project200.undabang.excercise.entity;
2+
3+
import com.project200.undabang.member.entity.Member;
4+
import jakarta.persistence.*;
5+
import jakarta.validation.constraints.NotNull;
6+
import jakarta.validation.constraints.Size;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import org.hibernate.annotations.ColumnDefault;
10+
11+
import java.time.LocalDateTime;
12+
13+
@Getter
14+
@Setter
15+
@Entity
16+
@Table(name = "exercises")
17+
public class Exercise {
18+
@Id
19+
@Column(name = "exercise_id", nullable = false)
20+
private Long id;
21+
22+
@NotNull
23+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
24+
@JoinColumn(name = "member_id", nullable = false)
25+
private Member member;
26+
27+
@NotNull
28+
@ColumnDefault("CURRENT_TIMESTAMP")
29+
@Column(name = "exercise_started_at", nullable = false)
30+
private LocalDateTime exerciseStartedAt = LocalDateTime.now();
31+
32+
@NotNull
33+
@ColumnDefault("((`exercise_started_at` + interval 1 hour))")
34+
@Column(name = "exercise_ended_at", nullable = false)
35+
private LocalDateTime exerciseEndedAt = LocalDateTime.now().plusHours(1);
36+
37+
@NotNull
38+
@Lob
39+
@Column(name = "exercise_detail", nullable = false, columnDefinition = "text")
40+
private String exerciseDetail;
41+
42+
@Size(max = 255)
43+
@NotNull
44+
@Column(name = "exercise_title", nullable = false)
45+
private String exerciseTitle;
46+
47+
@Size(max = 255)
48+
@NotNull
49+
@org.hibernate.annotations.Comment("시스템이 아닌 개인 등록")
50+
@Column(name = "exercise_personal_type", nullable = false)
51+
private String exercisePersonalType;
52+
53+
@NotNull
54+
@ColumnDefault("CURRENT_TIMESTAMP")
55+
@Column(name = "exercise_created_at", nullable = false)
56+
private LocalDateTime exerciseCreatedAt = LocalDateTime.now();
57+
58+
@Column(name = "exercise_deleted_at")
59+
private LocalDateTime exerciseDeletedAt;
60+
61+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.project200.undabang.excercise.entity;
2+
3+
import com.project200.undabang.common.entity.Picture;
4+
import jakarta.persistence.*;
5+
import jakarta.validation.constraints.NotNull;
6+
import lombok.Getter;
7+
import lombok.Setter;
8+
9+
@Getter
10+
@Setter
11+
@Entity
12+
@Table(name = "exercise_pictures")
13+
public class ExercisePicture {
14+
@Id
15+
@Column(name = "picture_id", nullable = false)
16+
private Long id;
17+
18+
@MapsId
19+
@OneToOne(fetch = FetchType.LAZY, optional = false)
20+
@JoinColumn(name = "picture_id", nullable = false)
21+
private Picture pictures;
22+
23+
@NotNull
24+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
25+
@JoinColumn(name = "exercise_id", nullable = false)
26+
private Exercise exercise;
27+
28+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.project200.undabang.excercise.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.Id;
6+
import jakarta.persistence.Table;
7+
import jakarta.validation.constraints.NotNull;
8+
import jakarta.validation.constraints.Size;
9+
import lombok.Getter;
10+
import lombok.Setter;
11+
import org.hibernate.annotations.ColumnDefault;
12+
13+
import java.time.LocalDateTime;
14+
15+
@Getter
16+
@Setter
17+
@Entity
18+
@Table(name = "exercise_types")
19+
public class ExerciseType {
20+
@Id
21+
@Column(name = "exercise_id", nullable = false)
22+
private Long id;
23+
24+
@Size(max = 50)
25+
@NotNull
26+
@Column(name = "exercise_name", nullable = false, length = 50)
27+
private String exerciseName;
28+
29+
@NotNull
30+
@ColumnDefault("CURRENT_TIMESTAMP")
31+
@Column(name = "exercise_type_created_at", nullable = false)
32+
private LocalDateTime exerciseTypeCreatedAt = LocalDateTime.now();
33+
34+
@Column(name = "exercise_type_deleted_at")
35+
private LocalDateTime exerciseTypeDeletedAt;
36+
37+
@Size(max = 10)
38+
@NotNull
39+
@Column(name = "exercise_type_emoji", nullable = false, length = 10)
40+
private String exerciseTypeEmoji;
41+
42+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.project200.undabang.interaction.entity;
2+
3+
import com.project200.undabang.member.entity.Member;
4+
import com.project200.undabang.post.entity.Post;
5+
import jakarta.persistence.*;
6+
import jakarta.validation.constraints.NotNull;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import org.hibernate.annotations.ColumnDefault;
10+
11+
import java.time.LocalDateTime;
12+
13+
@Getter
14+
@Setter
15+
@Entity
16+
@Table(name = "likes")
17+
public class Like {
18+
@Id
19+
@Column(name = "like_id", nullable = false)
20+
private Long id;
21+
22+
@NotNull
23+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
24+
@JoinColumn(name = "member_id", nullable = false)
25+
private Member member;
26+
27+
@NotNull
28+
@ManyToOne(fetch = FetchType.LAZY, optional = false)
29+
@JoinColumn(name = "post_id", nullable = false)
30+
private Post post;
31+
32+
@NotNull
33+
@ColumnDefault("CURRENT_TIMESTAMP")
34+
@Column(name = "like_created_at", nullable = false)
35+
private LocalDateTime likeCreatedAt = LocalDateTime.now();
36+
37+
@Column(name = "like_canceled_at")
38+
private LocalDateTime likeCanceledAt;
39+
40+
}

0 commit comments

Comments
 (0)