Skip to content

Commit

Permalink
feature: 도메인 설계
Browse files Browse the repository at this point in the history
  • Loading branch information
sss4920 committed Dec 27, 2023
1 parent c90deb9 commit b2e5ceb
Show file tree
Hide file tree
Showing 7 changed files with 223 additions and 2 deletions.
4 changes: 2 additions & 2 deletions linkmind/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ out/

### VS Code ###
.vscode/
application-dev.yaml
application-main.yaml
application-dev.yml
application-local.yml
27 changes: 27 additions & 0 deletions linkmind/src/main/java/com/app/linkmind/domain/Category.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
42 changes: 42 additions & 0 deletions linkmind/src/main/java/com/app/linkmind/domain/Reminder.java
Original file line number Diff line number Diff line change
@@ -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;
}



}
11 changes: 11 additions & 0 deletions linkmind/src/main/java/com/app/linkmind/domain/SocialType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.app.linkmind.domain;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum SocialType {
KAKAO,
APPLE;
}
37 changes: 37 additions & 0 deletions linkmind/src/main/java/com/app/linkmind/domain/Toast.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
70 changes: 70 additions & 0 deletions linkmind/src/main/java/com/app/linkmind/domain/User.java
Original file line number Diff line number Diff line change
@@ -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;
}
}

0 comments on commit b2e5ceb

Please sign in to comment.