From 878b603288b6562047aab9f399f8ca406ffdfddf Mon Sep 17 00:00:00 2001 From: hana Date: Sat, 26 Aug 2023 16:54:50 +0900 Subject: [PATCH 1/5] =?UTF-8?q?private=20List=20=EB=B6=80=EB=B6=84?= =?UTF-8?q?=20=EC=98=A4=EB=A5=98=20=EB=A7=A4=ED=95=91=20=EA=B4=80=EA=B3=84?= =?UTF-8?q?=20+=20=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anonymous/user/domain/College.java | 26 +++++++++++++++++++ .../sequence/anonymous/user/domain/User.java | 7 +++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/java/com/sequence/anonymous/user/domain/College.java diff --git a/src/main/java/com/sequence/anonymous/user/domain/College.java b/src/main/java/com/sequence/anonymous/user/domain/College.java new file mode 100644 index 0000000..c217e5d --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/College.java @@ -0,0 +1,26 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import java.util.ArrayList; +import java.util.List; +import lombok.Getter; + +@Getter +@Entity +public class College { + + @GeneratedValue @Id + @Column(name = "college_id") + @OneToMany(mappedBy = "User") + private List collegeUserList = new ArrayList<>(); + + @Column(name = "name") + String name; + + @Column(name = "Locaton") + String location; +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/User.java b/src/main/java/com/sequence/anonymous/user/domain/User.java index 50c88bc..91952c8 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/User.java +++ b/src/main/java/com/sequence/anonymous/user/domain/User.java @@ -8,6 +8,9 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; import jakarta.validation.constraints.Email; import lombok.Getter; @@ -19,6 +22,10 @@ public class User { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @ManyToOne + @JoinColumn(name = "college_id") + private College college; + private String providerId; @Column(length = 10) From e92aae8abed7adf70d235f2b179ac930415f7c8d Mon Sep 17 00:00:00 2001 From: hanachooi Date: Wed, 30 Aug 2023 22:03:24 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84=20(private=20set=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=95=84=EC=A7=81=20=EC=95=88=ED=95=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 +- .../anonymous/user/domain/Attachment.java | 22 ++++++++ .../sequence/anonymous/user/domain/Chat.java | 24 +++++++++ .../anonymous/user/domain/College.java | 21 +++++--- .../anonymous/user/domain/Department.java | 27 ++++++++++ .../anonymous/user/domain/FileType.java | 5 ++ .../anonymous/user/domain/Gender.java | 5 ++ .../anonymous/user/domain/Invite.java | 29 +++++++++++ .../anonymous/user/domain/InviteKind.java | 5 ++ .../anonymous/user/domain/InviteStatus.java | 5 ++ .../anonymous/user/domain/MatchPost.java | 33 ++++++++++++ .../user/domain/MatchPostStatus.java | 5 ++ .../sequence/anonymous/user/domain/Tag.java | 24 +++++++++ .../sequence/anonymous/user/domain/User.java | 51 +++++++++++++++---- .../anonymous/user/domain/UserChat.java | 22 ++++++++ .../anonymous/user/domain/UserMatchPost.java | 24 +++++++++ .../user/domain/UserMatchPostRole.java | 5 ++ .../anonymous/user/domain/UserRelation.java | 19 +++++++ .../anonymous/user/domain/UserTag.java | 23 +++++++++ 19 files changed, 333 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Attachment.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Chat.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Department.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/FileType.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Gender.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Invite.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/InviteKind.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/MatchPost.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/Tag.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserChat.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserRelation.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserTag.java diff --git a/build.gradle b/build.gradle index 7a1ccc5..9045e91 100644 --- a/build.gradle +++ b/build.gradle @@ -31,8 +31,8 @@ dependencies { implementation 'org.apache.commons:commons-lang3:3.12.0' implementation 'commons-io:commons-io:2.11.0' implementation 'com.auth0:java-jwt:4.3.0' - implementation 'org.springdoc:springdoc-openapi-starter-common:2.0.2' - implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' + implementation 'org.springdoc:springdoc-openapi-starter-common:2.0.4' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.4' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' diff --git a/src/main/java/com/sequence/anonymous/user/domain/Attachment.java b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java new file mode 100644 index 0000000..9ef876c --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java @@ -0,0 +1,22 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +@Getter @Entity +public class Attachment { + + @Id + @Column(name = "attachment_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + String name; + + @Enumerated(EnumType.STRING) + private FileType type; + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Chat.java b/src/main/java/com/sequence/anonymous/user/domain/Chat.java new file mode 100644 index 0000000..0ee7ded --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Chat.java @@ -0,0 +1,24 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +@Entity @Getter +public class Chat { + + @Id + @Column(name = "chat_id") + private Long id; + + @OneToMany + private List userChat = new ArrayList<>(); + + // UUID ..? + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/College.java b/src/main/java/com/sequence/anonymous/user/domain/College.java index c217e5d..72585dd 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/College.java +++ b/src/main/java/com/sequence/anonymous/user/domain/College.java @@ -1,10 +1,8 @@ package com.sequence.anonymous.user.domain; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; +import io.lettuce.core.dynamic.annotation.CommandNaming; +import jakarta.persistence.*; + import java.util.ArrayList; import java.util.List; import lombok.Getter; @@ -13,14 +11,21 @@ @Entity public class College { - @GeneratedValue @Id + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "college_id") - @OneToMany(mappedBy = "User") - private List collegeUserList = new ArrayList<>(); + private Long id; + + @OneToMany + private List user = new ArrayList<>(); + + @OneToMany + private List department = new ArrayList<>(); @Column(name = "name") String name; @Column(name = "Locaton") String location; + + } diff --git a/src/main/java/com/sequence/anonymous/user/domain/Department.java b/src/main/java/com/sequence/anonymous/user/domain/Department.java new file mode 100644 index 0000000..9142393 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Department.java @@ -0,0 +1,27 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +@Getter +@Entity +public class Department { + + @Id + @Column(name = "department_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "college_id") + private College college; + + @OneToMany + private List user = new ArrayList<>(); + + + String name; + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/FileType.java b/src/main/java/com/sequence/anonymous/user/domain/FileType.java new file mode 100644 index 0000000..1d2e673 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/FileType.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum FileType { + MP4, MP3, PNG, JPEG +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Gender.java b/src/main/java/com/sequence/anonymous/user/domain/Gender.java new file mode 100644 index 0000000..37aa8c9 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Gender.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum Gender { + FEMALE, MALE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Invite.java b/src/main/java/com/sequence/anonymous/user/domain/Invite.java new file mode 100644 index 0000000..4b8323e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Invite.java @@ -0,0 +1,29 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +@Getter +@Entity +public class Invite { + + @Id + @Column(name = "invite_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + @Column(name = "inviter") + private User inviter; + + @ManyToOne + @JoinColumn(name = "user_id") + @Column(name = "invitee") + private User invitee; + + @Enumerated(EnumType.STRING) + private InviteStatus status; + + @Enumerated(EnumType.STRING) + private InviteKind kind; +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/InviteKind.java b/src/main/java/com/sequence/anonymous/user/domain/InviteKind.java new file mode 100644 index 0000000..93e9793 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/InviteKind.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum InviteKind { + MATCH_POST, FRIEND +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java b/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java new file mode 100644 index 0000000..237a740 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum InviteStatus { + WAIT, DONE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/MatchPost.java b/src/main/java/com/sequence/anonymous/user/domain/MatchPost.java new file mode 100644 index 0000000..2aa22e5 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/MatchPost.java @@ -0,0 +1,33 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +public class MatchPost { + + @Id + @Column(name = "matchpost_id") + private Long id; + + @OneToMany + private List usermatch_post = new ArrayList<>(); + + private String title; + + private String introdue; + + private String appeal; + + @Enumerated(EnumType.STRING) + private MatchPostStatus status; + + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java b/src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java new file mode 100644 index 0000000..741d303 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum MatchPostStatus { + RECRUIT, DONE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Tag.java b/src/main/java/com/sequence/anonymous/user/domain/Tag.java new file mode 100644 index 0000000..9da7627 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/Tag.java @@ -0,0 +1,24 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +public class Tag { + + @Id + @Column(name = "tag_id") + private Long id; + + private String name; + + @OneToMany + private List usertag = new ArrayList<>(); +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/User.java b/src/main/java/com/sequence/anonymous/user/domain/User.java index 91952c8..d8df89e 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/User.java +++ b/src/main/java/com/sequence/anonymous/user/domain/User.java @@ -1,24 +1,20 @@ package com.sequence.anonymous.user.domain; import com.google.common.base.Preconditions; -import jakarta.persistence.Column; -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.JoinColumn; -import jakarta.persistence.ManyToMany; -import jakarta.persistence.ManyToOne; +import jakarta.persistence.*; import jakarta.validation.constraints.Email; import lombok.Getter; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + @Entity @Getter public class User { @Id + @Column(name = "user_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @@ -26,6 +22,35 @@ public class User { @JoinColumn(name = "college_id") private College college; + @ManyToOne + @JoinColumn(name = "department_id") + private Department department; + + @OneToMany + private List inviter = new ArrayList<>(); + + @OneToMany + private List invitee = new ArrayList<>(); + + @OneToMany + private List attachment = new ArrayList<>(); + + @OneToMany + private List userChat = new ArrayList<>(); + + private String name; + + private int age; + + @Enumerated(EnumType.STRING) + private Gender gender; + + private boolean withdrawl; + + private LocalDateTime createdAt; + + private LocalDateTime updatedAt; + private String providerId; @Column(length = 10) @@ -39,6 +64,12 @@ public class User { @Enumerated(EnumType.STRING) private Role role; + @OneToMany + private List usermatch_post= new ArrayList<>(); + + @OneToMany + private List usertag = new ArrayList<>(); + protected User() { } diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserChat.java b/src/main/java/com/sequence/anonymous/user/domain/UserChat.java new file mode 100644 index 0000000..e3c85d3 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserChat.java @@ -0,0 +1,22 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +@Entity +@Getter +public class UserChat { + + @Id + @Column(name = "userchat_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne + @JoinColumn(name = "chat_id") + private Chat chat; + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java new file mode 100644 index 0000000..8b86224 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java @@ -0,0 +1,24 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +@Entity @Getter +public class UserMatchPost { + + @Id + @Column(name = "userMatchPost_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "matchpost_id") + private MatchPost matchPost; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + @Enumerated(EnumType.STRING) + private UserMatchPostRole role; + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java new file mode 100644 index 0000000..0ae04a3 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain; + +public enum UserMatchPostRole { + OWNER +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java b/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java new file mode 100644 index 0000000..7429ca8 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java @@ -0,0 +1,19 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import lombok.Getter; + +@Entity @Getter +public class UserRelation { + + @Id + @Column(name = "userRelation_id") + private Long id; + + private Long user; + private Long relation; + + // RelationKind ..? +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserTag.java b/src/main/java/com/sequence/anonymous/user/domain/UserTag.java new file mode 100644 index 0000000..d648ab1 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/UserTag.java @@ -0,0 +1,23 @@ +package com.sequence.anonymous.user.domain; + +import jakarta.persistence.*; +import lombok.Getter; + +@Entity +@Getter +public class UserTag { + + @Id + @Column(name = "usertag_id") + private Long id; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; + + + @ManyToOne + @JoinColumn(name = "tag_id") + private Tag tag; + +} From 456c37c9ca9f0fc225b3a86ee98268e244246a8c Mon Sep 17 00:00:00 2001 From: hanachooi Date: Wed, 30 Aug 2023 22:03:38 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84=20(private=20set=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=95=84=EC=A7=81=20=EC=95=88=ED=95=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/codeStyles/codeStyleConfig.xml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .idea/codeStyles/codeStyleConfig.xml diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..b9d18bf --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file From 7929a282ac5eeb74283e227ab28cd64aec311f1b Mon Sep 17 00:00:00 2001 From: hanachooi Date: Mon, 4 Sep 2023 17:46:56 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anonymous/security/CustomOAuth2User.java | 2 +- .../anonymous/security/CustomOidcUser.java | 2 +- .../service/CustomOAuth2UserService.java | 2 +- .../service/CustomOidcUserService.java | 2 +- .../anonymous/user/domain/Attachment.java | 26 +++++++++++++- .../sequence/anonymous/user/domain/Chat.java | 24 ------------- .../anonymous/user/domain/Gender.java | 5 --- .../anonymous/user/domain/InviteStatus.java | 5 --- .../user/domain/UserMatchPostRole.java | 5 --- .../anonymous/user/domain/UserRelation.java | 15 ++++++++ .../anonymous/user/domain/chat/Chat.java | 35 +++++++++++++++++++ .../user/domain/{ => chat}/UserChat.java | 3 +- .../user/domain/{ => college}/College.java | 10 +++--- .../user/domain/{ => college}/Department.java | 5 +-- .../user/domain/{ => invite}/Invite.java | 3 +- .../user/domain/{ => invite}/InviteKind.java | 2 +- .../user/domain/invite/InviteStatus.java | 5 +++ .../user/domain/{ => post}/MatchPost.java | 2 +- .../domain/{ => post}/MatchPostStatus.java | 2 +- .../user/domain/{ => post}/UserMatchPost.java | 3 +- .../user/domain/post/UserMatchPostRole.java | 5 +++ .../domain/repository/UserRepository.java | 2 +- .../anonymous/user/domain/user/Gender.java | 5 +++ .../user/domain/{ => user}/Role.java | 2 +- .../anonymous/user/domain/{ => user}/Tag.java | 16 ++++++++- .../user/domain/{ => user}/User.java | 14 ++++++-- .../user/domain/{ => user}/UserTag.java | 4 ++- .../anonymous/AnonymousApplicationTests.java | 13 ------- 28 files changed, 143 insertions(+), 76 deletions(-) delete mode 100644 src/main/java/com/sequence/anonymous/user/domain/Chat.java delete mode 100644 src/main/java/com/sequence/anonymous/user/domain/Gender.java delete mode 100644 src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java delete mode 100644 src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/chat/Chat.java rename src/main/java/com/sequence/anonymous/user/domain/{ => chat}/UserChat.java (75%) rename src/main/java/com/sequence/anonymous/user/domain/{ => college}/College.java (70%) rename src/main/java/com/sequence/anonymous/user/domain/{ => college}/Department.java (73%) rename src/main/java/com/sequence/anonymous/user/domain/{ => invite}/Invite.java (82%) rename src/main/java/com/sequence/anonymous/user/domain/{ => invite}/InviteKind.java (50%) create mode 100644 src/main/java/com/sequence/anonymous/user/domain/invite/InviteStatus.java rename src/main/java/com/sequence/anonymous/user/domain/{ => post}/MatchPost.java (91%) rename src/main/java/com/sequence/anonymous/user/domain/{ => post}/MatchPostStatus.java (51%) rename src/main/java/com/sequence/anonymous/user/domain/{ => post}/UserMatchPost.java (79%) create mode 100644 src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPostRole.java create mode 100644 src/main/java/com/sequence/anonymous/user/domain/user/Gender.java rename src/main/java/com/sequence/anonymous/user/domain/{ => user}/Role.java (79%) rename src/main/java/com/sequence/anonymous/user/domain/{ => user}/Tag.java (58%) rename src/main/java/com/sequence/anonymous/user/domain/{ => user}/User.java (78%) rename src/main/java/com/sequence/anonymous/user/domain/{ => user}/UserTag.java (85%) delete mode 100644 src/test/java/com/sequence/anonymous/AnonymousApplicationTests.java diff --git a/src/main/java/com/sequence/anonymous/security/CustomOAuth2User.java b/src/main/java/com/sequence/anonymous/security/CustomOAuth2User.java index 2afe54e..e715a95 100644 --- a/src/main/java/com/sequence/anonymous/security/CustomOAuth2User.java +++ b/src/main/java/com/sequence/anonymous/security/CustomOAuth2User.java @@ -1,7 +1,7 @@ package com.sequence.anonymous.security; import com.google.common.base.Preconditions; -import com.sequence.anonymous.user.domain.Role; +import com.sequence.anonymous.user.domain.user.Role; import java.io.Serializable; import java.util.Collection; import java.util.Map; diff --git a/src/main/java/com/sequence/anonymous/security/CustomOidcUser.java b/src/main/java/com/sequence/anonymous/security/CustomOidcUser.java index 9da0223..7be2202 100644 --- a/src/main/java/com/sequence/anonymous/security/CustomOidcUser.java +++ b/src/main/java/com/sequence/anonymous/security/CustomOidcUser.java @@ -1,6 +1,6 @@ package com.sequence.anonymous.security; -import com.sequence.anonymous.user.domain.Role; +import com.sequence.anonymous.user.domain.user.Role; import java.util.Map; import org.springframework.security.oauth2.core.oidc.OidcIdToken; import org.springframework.security.oauth2.core.oidc.OidcUserInfo; diff --git a/src/main/java/com/sequence/anonymous/security/service/CustomOAuth2UserService.java b/src/main/java/com/sequence/anonymous/security/service/CustomOAuth2UserService.java index 3648270..edee9b4 100644 --- a/src/main/java/com/sequence/anonymous/security/service/CustomOAuth2UserService.java +++ b/src/main/java/com/sequence/anonymous/security/service/CustomOAuth2UserService.java @@ -4,7 +4,7 @@ import com.sequence.anonymous.security.CustomOAuth2UserInfoFactory; import com.sequence.anonymous.security.userinfo.CustomOAuth2UserInfo; import com.sequence.anonymous.user.domain.OAuth2Provider; -import com.sequence.anonymous.user.domain.User; +import com.sequence.anonymous.user.domain.user.User; import com.sequence.anonymous.user.domain.repository.UserRepository; import java.util.Map; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/sequence/anonymous/security/service/CustomOidcUserService.java b/src/main/java/com/sequence/anonymous/security/service/CustomOidcUserService.java index 003fa31..53964f7 100644 --- a/src/main/java/com/sequence/anonymous/security/service/CustomOidcUserService.java +++ b/src/main/java/com/sequence/anonymous/security/service/CustomOidcUserService.java @@ -4,7 +4,7 @@ import com.sequence.anonymous.security.CustomOidcUser; import com.sequence.anonymous.security.userinfo.CustomOAuth2UserInfo; import com.sequence.anonymous.user.domain.OAuth2Provider; -import com.sequence.anonymous.user.domain.User; +import com.sequence.anonymous.user.domain.user.User; import com.sequence.anonymous.user.domain.repository.UserRepository; import java.util.Map; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/sequence/anonymous/user/domain/Attachment.java b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java index 9ef876c..0648e37 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/Attachment.java +++ b/src/main/java/com/sequence/anonymous/user/domain/Attachment.java @@ -1,5 +1,7 @@ package com.sequence.anonymous.user.domain; +import com.google.common.base.Preconditions; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import lombok.Getter; @@ -14,9 +16,31 @@ public class Attachment { @JoinColumn(name = "user_id") private User user; - String name; + private String name; @Enumerated(EnumType.STRING) private FileType type; + protected Attachment(){ + + } + + public Attachment(User user, String name, FileType type) { + this.user = user; + this.name = name; + this.type = type; + } + + private Attachment(Long id, User user, String name, FileType type){ + Preconditions.checkArgument(user != null, "user must be provided"); + Preconditions.checkArgument(type != null, "filetype must be provided"); + + this.id = id; + this.user = user; + this.name = name; + this.type = type; + + } + + } diff --git a/src/main/java/com/sequence/anonymous/user/domain/Chat.java b/src/main/java/com/sequence/anonymous/user/domain/Chat.java deleted file mode 100644 index 0ee7ded..0000000 --- a/src/main/java/com/sequence/anonymous/user/domain/Chat.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.sequence.anonymous.user.domain; - -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import lombok.Getter; - -import java.util.ArrayList; -import java.util.List; - -@Entity @Getter -public class Chat { - - @Id - @Column(name = "chat_id") - private Long id; - - @OneToMany - private List userChat = new ArrayList<>(); - - // UUID ..? - -} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Gender.java b/src/main/java/com/sequence/anonymous/user/domain/Gender.java deleted file mode 100644 index 37aa8c9..0000000 --- a/src/main/java/com/sequence/anonymous/user/domain/Gender.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.sequence.anonymous.user.domain; - -public enum Gender { - FEMALE, MALE -} diff --git a/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java b/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java deleted file mode 100644 index 237a740..0000000 --- a/src/main/java/com/sequence/anonymous/user/domain/InviteStatus.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.sequence.anonymous.user.domain; - -public enum InviteStatus { - WAIT, DONE -} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java b/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java deleted file mode 100644 index 0ae04a3..0000000 --- a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPostRole.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.sequence.anonymous.user.domain; - -public enum UserMatchPostRole { - OWNER -} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java b/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java index 7429ca8..be7db70 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java +++ b/src/main/java/com/sequence/anonymous/user/domain/UserRelation.java @@ -16,4 +16,19 @@ public class UserRelation { private Long relation; // RelationKind ..? + + protected UserRelation(){ + + } + + public UserRelation(Long user, Long relation) { + this.user = user; + this.relation = relation; + } + + private UserRelation(Long id, Long user, Long relation){ + this.id = id; + this.user = user; + this.relation = relation; + } } diff --git a/src/main/java/com/sequence/anonymous/user/domain/chat/Chat.java b/src/main/java/com/sequence/anonymous/user/domain/chat/Chat.java new file mode 100644 index 0000000..8b75c62 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/chat/Chat.java @@ -0,0 +1,35 @@ +package com.sequence.anonymous.user.domain.chat; + +import jakarta.persistence.*; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Entity @Getter +public class Chat { + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "chat_id") + private Long id; + + @OneToMany + private List userChat = new ArrayList<>(); + + @Column + private UUID chatIdentifier; + + protected Chat(){ + + } + public Chat(UUID chatIdentifier) { + this.chatIdentifier = chatIdentifier; + } + + private Chat(Long id, UUID chatIdentifier){ + this.id = id; + this.chatIdentifier = chatIdentifier; + } + +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserChat.java b/src/main/java/com/sequence/anonymous/user/domain/chat/UserChat.java similarity index 75% rename from src/main/java/com/sequence/anonymous/user/domain/UserChat.java rename to src/main/java/com/sequence/anonymous/user/domain/chat/UserChat.java index e3c85d3..73fb712 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/UserChat.java +++ b/src/main/java/com/sequence/anonymous/user/domain/chat/UserChat.java @@ -1,5 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.chat; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/sequence/anonymous/user/domain/College.java b/src/main/java/com/sequence/anonymous/user/domain/college/College.java similarity index 70% rename from src/main/java/com/sequence/anonymous/user/domain/College.java rename to src/main/java/com/sequence/anonymous/user/domain/college/College.java index 72585dd..5d47f36 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/College.java +++ b/src/main/java/com/sequence/anonymous/user/domain/college/College.java @@ -1,6 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.college; -import io.lettuce.core.dynamic.annotation.CommandNaming; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import java.util.ArrayList; @@ -13,7 +13,7 @@ public class College { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "college_id") - private Long id; + private static Long id; @OneToMany private List user = new ArrayList<>(); @@ -22,10 +22,10 @@ public class College { private List department = new ArrayList<>(); @Column(name = "name") - String name; + private String name; @Column(name = "Locaton") - String location; + private String location; } diff --git a/src/main/java/com/sequence/anonymous/user/domain/Department.java b/src/main/java/com/sequence/anonymous/user/domain/college/Department.java similarity index 73% rename from src/main/java/com/sequence/anonymous/user/domain/Department.java rename to src/main/java/com/sequence/anonymous/user/domain/college/Department.java index 9142393..736bad4 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/Department.java +++ b/src/main/java/com/sequence/anonymous/user/domain/college/Department.java @@ -1,5 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.college; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import lombok.Getter; @@ -22,6 +23,6 @@ public class Department { private List user = new ArrayList<>(); - String name; + private String name; } diff --git a/src/main/java/com/sequence/anonymous/user/domain/Invite.java b/src/main/java/com/sequence/anonymous/user/domain/invite/Invite.java similarity index 82% rename from src/main/java/com/sequence/anonymous/user/domain/Invite.java rename to src/main/java/com/sequence/anonymous/user/domain/invite/Invite.java index 4b8323e..bcf130b 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/Invite.java +++ b/src/main/java/com/sequence/anonymous/user/domain/invite/Invite.java @@ -1,5 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.invite; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/sequence/anonymous/user/domain/InviteKind.java b/src/main/java/com/sequence/anonymous/user/domain/invite/InviteKind.java similarity index 50% rename from src/main/java/com/sequence/anonymous/user/domain/InviteKind.java rename to src/main/java/com/sequence/anonymous/user/domain/invite/InviteKind.java index 93e9793..2fc8756 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/InviteKind.java +++ b/src/main/java/com/sequence/anonymous/user/domain/invite/InviteKind.java @@ -1,4 +1,4 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.invite; public enum InviteKind { MATCH_POST, FRIEND diff --git a/src/main/java/com/sequence/anonymous/user/domain/invite/InviteStatus.java b/src/main/java/com/sequence/anonymous/user/domain/invite/InviteStatus.java new file mode 100644 index 0000000..109e82e --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/invite/InviteStatus.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain.invite; + +public enum InviteStatus { + WAIT, DONE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/MatchPost.java b/src/main/java/com/sequence/anonymous/user/domain/post/MatchPost.java similarity index 91% rename from src/main/java/com/sequence/anonymous/user/domain/MatchPost.java rename to src/main/java/com/sequence/anonymous/user/domain/post/MatchPost.java index 2aa22e5..d01aa8b 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/MatchPost.java +++ b/src/main/java/com/sequence/anonymous/user/domain/post/MatchPost.java @@ -1,4 +1,4 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.post; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java b/src/main/java/com/sequence/anonymous/user/domain/post/MatchPostStatus.java similarity index 51% rename from src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java rename to src/main/java/com/sequence/anonymous/user/domain/post/MatchPostStatus.java index 741d303..404c611 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/MatchPostStatus.java +++ b/src/main/java/com/sequence/anonymous/user/domain/post/MatchPostStatus.java @@ -1,4 +1,4 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.post; public enum MatchPostStatus { RECRUIT, DONE diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java b/src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPost.java similarity index 79% rename from src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java rename to src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPost.java index 8b86224..f5eed44 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/UserMatchPost.java +++ b/src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPost.java @@ -1,5 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.post; +import com.sequence.anonymous.user.domain.user.User; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPostRole.java b/src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPostRole.java new file mode 100644 index 0000000..89c970d --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/post/UserMatchPostRole.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain.post; + +public enum UserMatchPostRole { + OWNER +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/repository/UserRepository.java b/src/main/java/com/sequence/anonymous/user/domain/repository/UserRepository.java index 290c406..0edecb8 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/repository/UserRepository.java +++ b/src/main/java/com/sequence/anonymous/user/domain/repository/UserRepository.java @@ -1,6 +1,6 @@ package com.sequence.anonymous.user.domain.repository; -import com.sequence.anonymous.user.domain.User; +import com.sequence.anonymous.user.domain.user.User; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/com/sequence/anonymous/user/domain/user/Gender.java b/src/main/java/com/sequence/anonymous/user/domain/user/Gender.java new file mode 100644 index 0000000..4bb2442 --- /dev/null +++ b/src/main/java/com/sequence/anonymous/user/domain/user/Gender.java @@ -0,0 +1,5 @@ +package com.sequence.anonymous.user.domain.user; + +public enum Gender { + FEMALE, MALE +} diff --git a/src/main/java/com/sequence/anonymous/user/domain/Role.java b/src/main/java/com/sequence/anonymous/user/domain/user/Role.java similarity index 79% rename from src/main/java/com/sequence/anonymous/user/domain/Role.java rename to src/main/java/com/sequence/anonymous/user/domain/user/Role.java index 3ba617a..87f5bbd 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/Role.java +++ b/src/main/java/com/sequence/anonymous/user/domain/user/Role.java @@ -1,4 +1,4 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.user; public enum Role { ROLE_USER("USER"), diff --git a/src/main/java/com/sequence/anonymous/user/domain/Tag.java b/src/main/java/com/sequence/anonymous/user/domain/user/Tag.java similarity index 58% rename from src/main/java/com/sequence/anonymous/user/domain/Tag.java rename to src/main/java/com/sequence/anonymous/user/domain/user/Tag.java index 9da7627..b7967d2 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/Tag.java +++ b/src/main/java/com/sequence/anonymous/user/domain/user/Tag.java @@ -1,5 +1,6 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.user; +import com.sequence.anonymous.user.domain.user.UserTag; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; @@ -21,4 +22,17 @@ public class Tag { @OneToMany private List usertag = new ArrayList<>(); + + protected Tag(){ + + } + + public Tag(String name) { + this.name = name; + } + + private Tag(Long id, String name){ + this.id = id; + this.name = name; + } } diff --git a/src/main/java/com/sequence/anonymous/user/domain/User.java b/src/main/java/com/sequence/anonymous/user/domain/user/User.java similarity index 78% rename from src/main/java/com/sequence/anonymous/user/domain/User.java rename to src/main/java/com/sequence/anonymous/user/domain/user/User.java index d8df89e..2299ad8 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/User.java +++ b/src/main/java/com/sequence/anonymous/user/domain/user/User.java @@ -1,9 +1,16 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.user; import com.google.common.base.Preconditions; +import com.sequence.anonymous.user.domain.*; +import com.sequence.anonymous.user.domain.chat.UserChat; +import com.sequence.anonymous.user.domain.college.College; +import com.sequence.anonymous.user.domain.college.Department; +import com.sequence.anonymous.user.domain.invite.Invite; +import com.sequence.anonymous.user.domain.post.UserMatchPost; import jakarta.persistence.*; -import jakarta.validation.constraints.Email; import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; import java.time.LocalDateTime; import java.util.ArrayList; @@ -47,8 +54,11 @@ public class User { private boolean withdrawl; + @CreatedDate + @Column(updatable = false) private LocalDateTime createdAt; + @LastModifiedDate private LocalDateTime updatedAt; private String providerId; diff --git a/src/main/java/com/sequence/anonymous/user/domain/UserTag.java b/src/main/java/com/sequence/anonymous/user/domain/user/UserTag.java similarity index 85% rename from src/main/java/com/sequence/anonymous/user/domain/UserTag.java rename to src/main/java/com/sequence/anonymous/user/domain/user/UserTag.java index d648ab1..25b8afd 100644 --- a/src/main/java/com/sequence/anonymous/user/domain/UserTag.java +++ b/src/main/java/com/sequence/anonymous/user/domain/user/UserTag.java @@ -1,4 +1,4 @@ -package com.sequence.anonymous.user.domain; +package com.sequence.anonymous.user.domain.user; import jakarta.persistence.*; import lombok.Getter; @@ -20,4 +20,6 @@ public class UserTag { @JoinColumn(name = "tag_id") private Tag tag; + + } diff --git a/src/test/java/com/sequence/anonymous/AnonymousApplicationTests.java b/src/test/java/com/sequence/anonymous/AnonymousApplicationTests.java deleted file mode 100644 index e82b867..0000000 --- a/src/test/java/com/sequence/anonymous/AnonymousApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.sequence.anonymous; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class AnonymousApplicationTests { - - @Test - void contextLoads() { - } - -} From 19f485bfe41a7cdd9e6afe6890fd0ad498b443e6 Mon Sep 17 00:00:00 2001 From: hanachooi Date: Mon, 4 Sep 2023 17:49:11 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logs/spring.log.2023-08-30.0.gz | Bin 0 -> 4523 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 logs/spring.log.2023-08-30.0.gz diff --git a/logs/spring.log.2023-08-30.0.gz b/logs/spring.log.2023-08-30.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..e239b8639686f338605b8a537e9f15888eefe993 GIT binary patch literal 4523 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 Ydjo5zV)r;Z(Y+@GUq>%c?P6j57vcHWSO5S3 literal 0 HcmV?d00001