From b2e5ceb531a8c6489bfdf641f70f7516bd08c4f5 Mon Sep 17 00:00:00 2001 From: soohyun Date: Wed, 27 Dec 2023 15:43:41 +0900 Subject: [PATCH] =?UTF-8?q?feature:=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=84=A4=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linkmind/.gitignore | 4 +- .../com/app/linkmind/domain/Category.java | 27 +++++++ .../linkmind/domain/CategoryManagement.java | 34 +++++++++ .../com/app/linkmind/domain/Reminder.java | 42 +++++++++++ .../com/app/linkmind/domain/SocialType.java | 11 +++ .../java/com/app/linkmind/domain/Toast.java | 37 ++++++++++ .../java/com/app/linkmind/domain/User.java | 70 +++++++++++++++++++ 7 files changed, 223 insertions(+), 2 deletions(-) create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/Category.java create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/CategoryManagement.java create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/Reminder.java create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/SocialType.java create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/Toast.java create mode 100644 linkmind/src/main/java/com/app/linkmind/domain/User.java diff --git a/linkmind/.gitignore b/linkmind/.gitignore index fb568e94..3c661c11 100644 --- a/linkmind/.gitignore +++ b/linkmind/.gitignore @@ -35,5 +35,5 @@ out/ ### VS Code ### .vscode/ -application-dev.yaml -application-main.yaml +application-dev.yml +application-local.yml diff --git a/linkmind/src/main/java/com/app/linkmind/domain/Category.java b/linkmind/src/main/java/com/app/linkmind/domain/Category.java new file mode 100644 index 00000000..890070b2 --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/Category.java @@ -0,0 +1,27 @@ +package com.app.linkmind.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Category { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long categoryId; + + private String title; + + @Builder + public Category(String title) { + this.title = title; + } +} diff --git a/linkmind/src/main/java/com/app/linkmind/domain/CategoryManagement.java b/linkmind/src/main/java/com/app/linkmind/domain/CategoryManagement.java new file mode 100644 index 00000000..c659fa02 --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/CategoryManagement.java @@ -0,0 +1,34 @@ +package com.app.linkmind.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@NoArgsConstructor +@Getter +public class CategoryManagement { + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long managedId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "managed_category") + private Category category; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "managed_toast") + private Toast toast; + + @Builder + public CategoryManagement(Category category, Toast toast){ + this.category = category; + this.toast = toast; + } +} diff --git a/linkmind/src/main/java/com/app/linkmind/domain/Reminder.java b/linkmind/src/main/java/com/app/linkmind/domain/Reminder.java new file mode 100644 index 00000000..02dc95a0 --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/Reminder.java @@ -0,0 +1,42 @@ +package com.app.linkmind.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +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 lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Reminder { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + Long id; + + @ManyToOne(fetch = FetchType.LAZY) + private User user; + + @OneToOne + @JoinColumn(name = "category") + private Category category; + + private String title; + + @Builder + public Reminder(User user, Category category, String title){ + this.user = user; + this.category = category; + this.title = title; + } + + + +} diff --git a/linkmind/src/main/java/com/app/linkmind/domain/SocialType.java b/linkmind/src/main/java/com/app/linkmind/domain/SocialType.java new file mode 100644 index 00000000..bceaa83b --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/SocialType.java @@ -0,0 +1,11 @@ +package com.app.linkmind.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum SocialType { + KAKAO, + APPLE; +} diff --git a/linkmind/src/main/java/com/app/linkmind/domain/Toast.java b/linkmind/src/main/java/com/app/linkmind/domain/Toast.java new file mode 100644 index 00000000..03e372ff --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/Toast.java @@ -0,0 +1,37 @@ +package com.app.linkmind.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Toast { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long Id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "toast_id") + private User user; + + private String title; + + private String linkUrl; + + @Builder + public Toast(User user, String title, String linkUrl){ + this.user= user; + this.title = title; + this.linkUrl = linkUrl; + } +} diff --git a/linkmind/src/main/java/com/app/linkmind/domain/User.java b/linkmind/src/main/java/com/app/linkmind/domain/User.java new file mode 100644 index 00000000..21357c7a --- /dev/null +++ b/linkmind/src/main/java/com/app/linkmind/domain/User.java @@ -0,0 +1,70 @@ +package com.app.linkmind.domain; + +import java.util.Objects; + +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 lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long userId; + + @Column(nullable = false, unique = true) + private String nickname; + + @Column(nullable = false) + private String socialId; + + @Column(nullable = true) + private String refreshToken; + + @Column(nullable = false) + @Enumerated(EnumType.STRING) + private SocialType socialType; + + @Column(nullable = true) + private String fcmToken; + + @Column(nullable = true) + private Boolean fcmIsAllowed = true; + + @Builder + public User(String nickname, String socialId, SocialType socialType) { + this.nickname = nickname; + this.socialId = socialId; + this.socialType = socialType; + } + + public void updateRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; + } + + public void updateNickname(String nickname) { + this.nickname = nickname; + } + + public void updateFcmToken(String fcmToken) { this.fcmToken = fcmToken; } + + public void updateFcmIsAllowed(Boolean isAllowed){this.fcmIsAllowed = isAllowed;} + + public String getFcmToken() { + if (Objects.nonNull(this.fcmToken)) { + return this.fcmToken; + } + return null; + } +}