From 616c90c8c5f0122af54fdaab2609450991c9fa9c Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Tue, 7 Jan 2025 21:48:10 +0900 Subject: [PATCH 01/21] =?UTF-8?q?=EB=A6=AC=EB=B7=B0=EC=96=B4=20=EB=A9=98?= =?UTF-8?q?=EC=85=98=EC=9D=B4=20=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B3=A0=EC=B3=A4=EA=B3=A0,=20PR=20=EC=A0=9C?= =?UTF-8?q?=EB=AA=A9=EC=9D=B4=20=EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/random_reviewer/reviewer.js | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/random_reviewer/reviewer.js b/.github/workflows/random_reviewer/reviewer.js index 3cebb98..3e0a6de 100644 --- a/.github/workflows/random_reviewer/reviewer.js +++ b/.github/workflows/random_reviewer/reviewer.js @@ -17,11 +17,11 @@ function selectRandomReviewer() { ] } -async function sendDiscordMsg(reviewer) { +async function sendDiscordMsg(reviewer, title) { const webhook = process.env.DISCORD_WEBHOOK; const msg = { - content: createMsg(reviewer) + content: createMsg(reviewer, title) } await fetch(webhook, { @@ -31,15 +31,25 @@ async function sendDiscordMsg(reviewer) { }) } -function createMsg(reviewer) { - return "리뷰해주세요\n" + "* PR: " + `https://github.com/${github.context.repo.owner}/${github.context.repo.repo}/pulls/${github.context.payload.pull_request.number}` - + "\n* 담당자: @" + "<@&" + member[reviewer] + ">" +function createMsg(reviewer, title) { + return title + "\n" + "* PR: " + `https://github.com/${github.context.repo.owner}/${github.context.repo.repo}/pulls/${github.context.payload.pull_request.number}` + + "\n* 담당자: " + "<@!" + member[reviewer] + ">" } async function main() { const githubClient = github.getOctokit(process.env.REVIEW_TOKEN); const reviewer = selectRandomReviewer(); + const { owner, repo } = github.context.repo; + + const pr = await githubClient.rest.pulls.get( + { + owner: owner, + repo: repo, + pull_number: github.context.payload.pull_request.number + } + ) + githubClient.rest.pulls.requestReviewers( { owner: github.context.repo.owner, @@ -51,7 +61,7 @@ async function main() { .then((res) => console.log("reviewer assign success: ", res)) .catch((err) => console.log("reviewer assign failed:", err)); - sendDiscordMsg(reviewer) + sendDiscordMsg(reviewer, pr.data.title) .then(() => console.log("message send success")) .catch(() => console.log("message send failed")); } From a5f8fd91d952bcee429870264a2a6acec0ae0726 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 01:30:58 +0900 Subject: [PATCH 02/21] =?UTF-8?q?sql=20driver=20=EB=A5=BC=20runtimeOnly=20?= =?UTF-8?q?=EC=97=90=EC=84=9C=20implementation=20=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 70d7198..665704e 100644 --- a/build.gradle +++ b/build.gradle @@ -28,8 +28,8 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.postgresql:postgresql' compileOnly 'org.projectlombok:lombok' - runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' From 3d2d4398a1a25b5c8f13a4f6f853fe323b26f8d6 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 01:32:55 +0900 Subject: [PATCH 03/21] =?UTF-8?q?member=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../study_group/member/domain/Member.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/member/domain/Member.java diff --git a/src/main/java/com/gdgoc/study_group/member/domain/Member.java b/src/main/java/com/gdgoc/study_group/member/domain/Member.java new file mode 100644 index 0000000..5d93337 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/member/domain/Member.java @@ -0,0 +1,25 @@ +package com.gdgoc.study_group.member.domain; + +import com.gdgoc.study_group.studyMember.domain.StudyMember; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import java.util.List; + +@Entity +public class Member { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @OneToMany + @JoinColumn(name = "study_member_id") + private List studyMembers; + + private String name; + private String github; + private String studentNumber; +} From 59240d03adfa99ffe37fb3de2b3495cb7fd8251c Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 01:33:53 +0900 Subject: [PATCH 04/21] =?UTF-8?q?study=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gdgoc/study_group/study/domain/Study.java | 23 +++++++++++++++++ .../studyMember/domain/Status.java | 8 ++++++ .../studyMember/domain/StudyMember.java | 25 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/study/domain/Study.java create mode 100644 src/main/java/com/gdgoc/study_group/studyMember/domain/Status.java create mode 100644 src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java diff --git a/src/main/java/com/gdgoc/study_group/study/domain/Study.java b/src/main/java/com/gdgoc/study_group/study/domain/Study.java new file mode 100644 index 0000000..ba51498 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/study/domain/Study.java @@ -0,0 +1,23 @@ +package com.gdgoc.study_group.study.domain; + +import com.gdgoc.study_group.studyMember.domain.StudyMember; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToMany; +import java.util.List; + +@Entity +public class Study { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @OneToMany + @JoinColumn(name = "study_member_id") + private List studyMembers; + + private String name; +} diff --git a/src/main/java/com/gdgoc/study_group/studyMember/domain/Status.java b/src/main/java/com/gdgoc/study_group/studyMember/domain/Status.java new file mode 100644 index 0000000..2eea43b --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/studyMember/domain/Status.java @@ -0,0 +1,8 @@ +package com.gdgoc.study_group.studyMember.domain; + +public enum Status { + LEADER, + PARTICIPANT, + WAITING, + CANCELED; +} diff --git a/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java new file mode 100644 index 0000000..9c71590 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java @@ -0,0 +1,25 @@ +package com.gdgoc.study_group.studyMember.domain; + +import com.gdgoc.study_group.member.domain.Member; +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; + +@Entity +public class StudyMember { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne private Member member; + + @ManyToOne private Study study; + + @Enumerated(EnumType.STRING) + private Status status; +} From b5dcc546a5e34e35b993e8f347fd8057df91665f Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 20:21:00 +0900 Subject: [PATCH 05/21] =?UTF-8?q?member=20domain=20=EC=97=90=EC=84=9C=20st?= =?UTF-8?q?udyMember=20=EC=97=90=20=EB=8C=80=ED=95=9C=20JoinColumn=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/gdgoc/study_group/member/domain/Member.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/gdgoc/study_group/member/domain/Member.java b/src/main/java/com/gdgoc/study_group/member/domain/Member.java index 5d93337..037ff29 100644 --- a/src/main/java/com/gdgoc/study_group/member/domain/Member.java +++ b/src/main/java/com/gdgoc/study_group/member/domain/Member.java @@ -5,7 +5,6 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; import jakarta.persistence.OneToMany; import java.util.List; @@ -15,8 +14,7 @@ public class Member { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @OneToMany - @JoinColumn(name = "study_member_id") + @OneToMany(mappedBy = "member") private List studyMembers; private String name; From 9ed8062a73dcedfcf5ccc9cc79fa9833249b15d6 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 20:23:07 +0900 Subject: [PATCH 06/21] =?UTF-8?q?StudyMember=20=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=B4=20Member,=20Study=20=EC=97=90=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?JoinColumn=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../study_group/studyMember/domain/StudyMember.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java index 9c71590..b0b4d70 100644 --- a/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java +++ b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java @@ -8,6 +8,7 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; @Entity @@ -16,9 +17,13 @@ public class StudyMember { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @ManyToOne private Member member; + @ManyToOne + @JoinColumn(name = "member_id") + private Member member; - @ManyToOne private Study study; + @ManyToOne + @JoinColumn(name = "study_id") + private Study study; @Enumerated(EnumType.STRING) private Status status; From 54914389f19369eacac8a039e0a8798e16bb33da Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 21:36:46 +0900 Subject: [PATCH 07/21] =?UTF-8?q?study=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gdgoc/study_group/study/domain/Study.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gdgoc/study_group/study/domain/Study.java b/src/main/java/com/gdgoc/study_group/study/domain/Study.java index ba51498..a5ff8da 100644 --- a/src/main/java/com/gdgoc/study_group/study/domain/Study.java +++ b/src/main/java/com/gdgoc/study_group/study/domain/Study.java @@ -1,11 +1,14 @@ package com.gdgoc.study_group.study.domain; +import com.gdgoc.study_group.answer.domain.Answer; +import com.gdgoc.study_group.curriculum.domain.Curriculum; +import com.gdgoc.study_group.day.domain.Day; +import com.gdgoc.study_group.round.domain.Round; import com.gdgoc.study_group.studyMember.domain.StudyMember; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; import jakarta.persistence.OneToMany; import java.util.List; @@ -15,9 +18,25 @@ public class Study { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @OneToMany - @JoinColumn(name = "study_member_id") + @OneToMany(mappedBy = "study_member_id") private List studyMembers; + @OneToMany(mappedBy = "round_id") + private List rounds; + + @OneToMany(mappedBy = "curriculum_id") + private List curriculums; + + @OneToMany(mappedBy = "day_id") + private List days; + + @OneToMany(mappedBy = "answer_id") + private List answers; + private String name; + private String description; + private boolean isOffline; + private boolean isActive; + private Integer participants; // 현재 스터디 참여 인원 + private Integer maxParticipants; // null == 인원 제한 X } From 1befa9affca7319dc76dc431d8a9c9eb76cf0117 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 21:55:57 +0900 Subject: [PATCH 08/21] =?UTF-8?q?curriculum=20domain=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curriculum/domain/Curriculum.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java diff --git a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java new file mode 100644 index 0000000..e4aeebe --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java @@ -0,0 +1,23 @@ +package com.gdgoc.study_group.curriculum.domain; + +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; + +@Entity +public class Curriculum { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "study_id") + private Study study; + + private Integer week; + private String subject; // 주제 +} From 6e147726f3453be168cf0ee75227c469137da25b Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:08:20 +0900 Subject: [PATCH 09/21] =?UTF-8?q?Revert=20"curriculum=20domain=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 1befa9affca7319dc76dc431d8a9c9eb76cf0117. --- .../curriculum/domain/Curriculum.java | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java diff --git a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java deleted file mode 100644 index e4aeebe..0000000 --- a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.gdgoc.study_group.curriculum.domain; - -import com.gdgoc.study_group.study.domain.Study; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; - -@Entity -public class Curriculum { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @ManyToOne - @JoinColumn(name = "study_id") - private Study study; - - private Integer week; - private String subject; // 주제 -} From 8a14341237dc3fab925736c62e1e0a0b02267d89 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:10:17 +0900 Subject: [PATCH 10/21] =?UTF-8?q?curriculum=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curriculum/domain/Curriculum.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java diff --git a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java new file mode 100644 index 0000000..8768cca --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java @@ -0,0 +1,20 @@ +package com.gdgoc.study_group.curriculum.domain; + +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; + +@Entity +public class Curriculum { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "study_id", nullable = false) + private Study study; +} From 4f3ba26e2ae90dbb346f6577b9f4c250804b8de1 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:10:58 +0900 Subject: [PATCH 11/21] =?UTF-8?q?day=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gdgoc/study_group/day/domain/Day.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/day/domain/Day.java diff --git a/src/main/java/com/gdgoc/study_group/day/domain/Day.java b/src/main/java/com/gdgoc/study_group/day/domain/Day.java new file mode 100644 index 0000000..876fbe2 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/day/domain/Day.java @@ -0,0 +1,24 @@ +package com.gdgoc.study_group.day.domain; + +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import java.time.LocalTime; + +@Entity +public class Day { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "study_id", nullable = false) + private Study study; + + private String day; + private LocalTime startTime; +} From 6e24130a0e91254182db272c3d07121f989c7a02 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:22:53 +0900 Subject: [PATCH 12/21] =?UTF-8?q?answer=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../study_group/answer/domain/Answer.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/answer/domain/Answer.java diff --git a/src/main/java/com/gdgoc/study_group/answer/domain/Answer.java b/src/main/java/com/gdgoc/study_group/answer/domain/Answer.java new file mode 100644 index 0000000..45c88fc --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/answer/domain/Answer.java @@ -0,0 +1,27 @@ +package com.gdgoc.study_group.answer.domain; + +import com.gdgoc.study_group.member.domain.Member; +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; + +@Entity +public class Answer { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "member_id") + private Member member; + + @ManyToOne + @JoinColumn(name = "study_id") + private Study study; + + private String answer; +} From 529e0091dd3b454d6aaa8ddf129f8875d34991c5 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:30:33 +0900 Subject: [PATCH 13/21] =?UTF-8?q?Member,=20Study=20domain=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=20List=20=EC=86=8D=EC=84=B1=EC=9D=84=20=EB=AF=B8?= =?UTF-8?q?=EB=A6=AC=20=EC=B4=88=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gdgoc/study_group/member/domain/Member.java | 3 ++- .../com/gdgoc/study_group/study/domain/Study.java | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gdgoc/study_group/member/domain/Member.java b/src/main/java/com/gdgoc/study_group/member/domain/Member.java index 037ff29..9193f1b 100644 --- a/src/main/java/com/gdgoc/study_group/member/domain/Member.java +++ b/src/main/java/com/gdgoc/study_group/member/domain/Member.java @@ -6,6 +6,7 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; +import java.util.ArrayList; import java.util.List; @Entity @@ -15,7 +16,7 @@ public class Member { private Long id; @OneToMany(mappedBy = "member") - private List studyMembers; + private List studyMembers = new ArrayList<>(); private String name; private String github; diff --git a/src/main/java/com/gdgoc/study_group/study/domain/Study.java b/src/main/java/com/gdgoc/study_group/study/domain/Study.java index a5ff8da..8ae3933 100644 --- a/src/main/java/com/gdgoc/study_group/study/domain/Study.java +++ b/src/main/java/com/gdgoc/study_group/study/domain/Study.java @@ -10,6 +10,7 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; +import java.util.ArrayList; import java.util.List; @Entity @@ -19,19 +20,19 @@ public class Study { private Long id; @OneToMany(mappedBy = "study_member_id") - private List studyMembers; + private List studyMembers = new ArrayList<>(); @OneToMany(mappedBy = "round_id") - private List rounds; + private List rounds = new ArrayList<>(); @OneToMany(mappedBy = "curriculum_id") - private List curriculums; + private List curriculums = new ArrayList<>(); @OneToMany(mappedBy = "day_id") - private List days; + private List days = new ArrayList<>(); @OneToMany(mappedBy = "answer_id") - private List answers; + private List answers = new ArrayList<>(); private String name; private String description; From 5d87597fcda9e7b0b2ce3909ed056cea233420d4 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:53:43 +0900 Subject: [PATCH 14/21] =?UTF-8?q?round=20domain=20=EB=B0=8F=20round=20imag?= =?UTF-8?q?e=20=EC=9A=A9=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gdgoc/study_group/round/domain/Round.java | 31 +++++++++++++++++++ .../round/domain/RoundThumbnail.java | 31 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/round/domain/Round.java create mode 100644 src/main/java/com/gdgoc/study_group/round/domain/RoundThumbnail.java diff --git a/src/main/java/com/gdgoc/study_group/round/domain/Round.java b/src/main/java/com/gdgoc/study_group/round/domain/Round.java new file mode 100644 index 0000000..7971887 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/round/domain/Round.java @@ -0,0 +1,31 @@ +package com.gdgoc.study_group.round.domain; + +import com.gdgoc.study_group.study.domain.Study; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +@Entity +public class Round { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "study_id") + private Study study; + + @OneToMany(mappedBy = "round") + private List images = new ArrayList<>(); + + private String goal; // 학습 목표 + private String studyDetail; // 학습 내용 + private LocalDate roundDate; // 회차 진행한 날짜 +} diff --git a/src/main/java/com/gdgoc/study_group/round/domain/RoundThumbnail.java b/src/main/java/com/gdgoc/study_group/round/domain/RoundThumbnail.java new file mode 100644 index 0000000..e94be1f --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/round/domain/RoundThumbnail.java @@ -0,0 +1,31 @@ +package com.gdgoc.study_group.round.domain; + +import com.gdgoc.study_group.member.domain.Member; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; + +@Entity +@Table(name = "ROUND_THUMBNAIL") +public class RoundThumbnail { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "round_id") + private Round round; + + @OneToOne + @JoinColumn(name = "member_id") + private Member member; + + private String fileName; + private String filePath; // 파일의 이름을 제외한 저장 위치 + private String type; // jpeg, png... +} From d8330bf62aba4edf0d70d311ae5b4418b175c0d6 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 22:54:20 +0900 Subject: [PATCH 15/21] =?UTF-8?q?table=20=EC=9D=B4=EB=A6=84=20=20=EB=AA=85?= =?UTF-8?q?=ED=99=95=ED=95=98=EA=B2=8C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gdgoc/study_group/studyMember/domain/StudyMember.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java index b0b4d70..b2ae7c5 100644 --- a/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java +++ b/src/main/java/com/gdgoc/study_group/studyMember/domain/StudyMember.java @@ -10,8 +10,10 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; @Entity +@Table(name = "STUDY_MEMBER") public class StudyMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) From 7ac9fb61a43b9369ec7cd7b9fbbc8d285845c67a Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 23:07:59 +0900 Subject: [PATCH 16/21] =?UTF-8?q?retrospect=20=ED=85=8C=EC=9D=B4=EB=B8=94?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C=ED=95=98=EA=B3=A0,=20roundMember=20?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=ED=9B=84=EA=B8=B0=20=EB=82=B4=EC=9A=A9=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gdgoc/study_group/member/domain/Member.java | 4 ++++ .../java/com/gdgoc/study_group/round/domain/Round.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/gdgoc/study_group/member/domain/Member.java b/src/main/java/com/gdgoc/study_group/member/domain/Member.java index 9193f1b..a87cc9c 100644 --- a/src/main/java/com/gdgoc/study_group/member/domain/Member.java +++ b/src/main/java/com/gdgoc/study_group/member/domain/Member.java @@ -1,5 +1,6 @@ package com.gdgoc.study_group.member.domain; +import com.gdgoc.study_group.roundMember.domain.RoundMember; import com.gdgoc.study_group.studyMember.domain.StudyMember; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -18,6 +19,9 @@ public class Member { @OneToMany(mappedBy = "member") private List studyMembers = new ArrayList<>(); + @OneToMany(mappedBy = "member") + private List roundMembers = new ArrayList<>(); + private String name; private String github; private String studentNumber; diff --git a/src/main/java/com/gdgoc/study_group/round/domain/Round.java b/src/main/java/com/gdgoc/study_group/round/domain/Round.java index 7971887..71546e9 100644 --- a/src/main/java/com/gdgoc/study_group/round/domain/Round.java +++ b/src/main/java/com/gdgoc/study_group/round/domain/Round.java @@ -1,5 +1,7 @@ package com.gdgoc.study_group.round.domain; +import com.gdgoc.study_group.comment.domain.Comment; +import com.gdgoc.study_group.roundMember.domain.RoundMember; import com.gdgoc.study_group.study.domain.Study; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -22,9 +24,15 @@ public class Round { @JoinColumn(name = "study_id") private Study study; + @OneToMany(mappedBy = "round") + private List roundMembers = new ArrayList<>(); + @OneToMany(mappedBy = "round") private List images = new ArrayList<>(); + @OneToMany(mappedBy = "round") + private List comments = new ArrayList<>(); + private String goal; // 학습 목표 private String studyDetail; // 학습 내용 private LocalDate roundDate; // 회차 진행한 날짜 From cc19b1fc19dab3881d92128d030a6dc5ebfb1d60 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 23:13:06 +0900 Subject: [PATCH 17/21] =?UTF-8?q?roundMember=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roundMember/domain/RoundMember.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java diff --git a/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java b/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java new file mode 100644 index 0000000..bfa384f --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java @@ -0,0 +1,27 @@ +package com.gdgoc.study_group.roundMember.domain; + +import com.gdgoc.study_group.member.domain.Member; +import com.gdgoc.study_group.round.domain.Round; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; + +@Entity +public class RoundMember { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "round_id") + private Round round; + + @ManyToOne + @JoinColumn(name = "member_id") + private Member member; + + private String retrospect; // 후기 내용 +} From 08dbd466cefa7465b8cbf660eff8d51d6d2e0b1a Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 23:13:53 +0900 Subject: [PATCH 18/21] =?UTF-8?q?table=20=EC=9D=B4=EB=A6=84=20=EB=AA=85?= =?UTF-8?q?=ED=99=95=ED=95=98=EA=B2=8C=20=ED=91=9C=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gdgoc/study_group/roundMember/domain/RoundMember.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java b/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java index bfa384f..c0916f6 100644 --- a/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java +++ b/src/main/java/com/gdgoc/study_group/roundMember/domain/RoundMember.java @@ -8,8 +8,10 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; @Entity +@Table(name = "ROUND_MEMBER") public class RoundMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) From 5ca51b33e1054b1a07445828cc4fb02b0c5e7b40 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 23:14:19 +0900 Subject: [PATCH 19/21] =?UTF-8?q?comment=20domain=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../study_group/comment/domain/Comment.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/gdgoc/study_group/comment/domain/Comment.java diff --git a/src/main/java/com/gdgoc/study_group/comment/domain/Comment.java b/src/main/java/com/gdgoc/study_group/comment/domain/Comment.java new file mode 100644 index 0000000..6327d42 --- /dev/null +++ b/src/main/java/com/gdgoc/study_group/comment/domain/Comment.java @@ -0,0 +1,27 @@ +package com.gdgoc.study_group.comment.domain; + +import com.gdgoc.study_group.member.domain.Member; +import com.gdgoc.study_group.round.domain.Round; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; + +@Entity +public class Comment { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "round_id") + private Round round; + + @ManyToOne + @JoinColumn(name = "member_id") + private Member member; + + private String comment; +} From 34c78d35c9dc9372aea615e8b0301b3d0eec1a27 Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Wed, 8 Jan 2025 23:18:07 +0900 Subject: [PATCH 20/21] =?UTF-8?q?=EB=B0=98=EC=98=81=20=EC=95=88=EB=90=9C?= =?UTF-8?q?=20=EC=86=8D=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gdgoc/study_group/curriculum/domain/Curriculum.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java index 8768cca..ba8fdae 100644 --- a/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java +++ b/src/main/java/com/gdgoc/study_group/curriculum/domain/Curriculum.java @@ -17,4 +17,7 @@ public class Curriculum { @ManyToOne @JoinColumn(name = "study_id", nullable = false) private Study study; + + private Integer week; + private String subject; // 해당 회차의 주제 } From 5efbb9748abb27001d58b922646ba6332e0d829b Mon Sep 17 00:00:00 2001 From: CheonMinJae Date: Thu, 9 Jan 2025 01:53:10 +0900 Subject: [PATCH 21/21] =?UTF-8?q?mapping=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gdgoc/study_group/study/domain/Study.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gdgoc/study_group/study/domain/Study.java b/src/main/java/com/gdgoc/study_group/study/domain/Study.java index 8ae3933..f2d908b 100644 --- a/src/main/java/com/gdgoc/study_group/study/domain/Study.java +++ b/src/main/java/com/gdgoc/study_group/study/domain/Study.java @@ -19,19 +19,19 @@ public class Study { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @OneToMany(mappedBy = "study_member_id") + @OneToMany(mappedBy = "study") private List studyMembers = new ArrayList<>(); - @OneToMany(mappedBy = "round_id") + @OneToMany(mappedBy = "study") private List rounds = new ArrayList<>(); - @OneToMany(mappedBy = "curriculum_id") + @OneToMany(mappedBy = "study") private List curriculums = new ArrayList<>(); - @OneToMany(mappedBy = "day_id") + @OneToMany(mappedBy = "study") private List days = new ArrayList<>(); - @OneToMany(mappedBy = "answer_id") + @OneToMany(mappedBy = "study") private List answers = new ArrayList<>(); private String name;