Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/main/java/com/konkuk/chapterkeep/domain/BookReview.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.konkuk.chapterkeep.domain.enums.CoverColor;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

Expand All @@ -29,6 +30,9 @@ public class BookReview extends BaseTimeEntity {
@Enumerated(EnumType.STRING)
private CoverColor coverColor;

@Column(name = "cover_url")
private String coverUrl;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "book_id")
private BookInfo bookInfo;
Expand All @@ -37,4 +41,42 @@ public class BookReview extends BaseTimeEntity {
@JoinColumn(name = "member_id")
private Member member;

@Builder
private BookReview(Member member, int rating, String content, String quotation,
CoverColor coverColor, String coverUrl, BookInfo bookInfo) {
this.member = member;
this.rating = rating;
this.content = content;
this.quotation = quotation;
this.coverColor = coverColor;
this.coverUrl = coverUrl;
this.bookInfo = bookInfo;

// 연관관계 설정
if (member != null) {
member.getBookReviews().add(this);
}
}

// 생성 메서드
public static BookReview createBookReview(Member member, int rating, String content, String quotation,
String coverUrl, CoverColor coverColor, BookInfo bookInfo) {
return BookReview.builder()
.member(member)
.rating(rating)
.content(content)
.quotation(quotation)
.coverColor(coverColor)
.coverUrl(coverUrl)
.bookInfo(bookInfo)
.build();
}

// 연관 관계 해제 메서드
public void removeMember() {
if (member != null) {
member.getBookReviews().remove(this);
this.member = null;
}
}
}
42 changes: 42 additions & 0 deletions src/main/java/com/konkuk/chapterkeep/domain/Comment.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

Expand Down Expand Up @@ -30,4 +31,45 @@ public class Comment extends BaseTimeEntity {
@JoinColumn(name = "post_id")
private Post post;

@Builder
private Comment(Member member, Post post, String content, boolean isAnonymous) {
this.member = member;
this.post = post;
this.content = content;
this.isAnonymous = isAnonymous;

// 양방향 연관 관계 설정
if (member != null) {
member.getComments().add(this);
}
if (post != null) {
post.getComments().add(this);
}
}

// 생성 메서드
public static Comment createComment(Member member, Post post, String content, boolean isAnonymous) {
return Comment.builder()
.member(member)
.post(post)
.content(content)
.isAnonymous(isAnonymous)
.build();
}

// 연관 관계 해제 메서드 (member)
public void removeMember() {
if (member != null) {
member.getComments().remove(this);
this.member = null;
}
}

// 연관 관계 해제 메서드 (post)
public void removePost() {
if (post != null) {
post.getComments().remove(this);
this.post = null;
}
}
}
21 changes: 18 additions & 3 deletions src/main/java/com/konkuk/chapterkeep/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,28 @@ public class Member {


@Builder
public Member(String name, String password, String nickname, String introduction, String profileUrl, Role role, Boolean visibility) {
public Member(String name, String password, String nickname, String introduction,
String profileUrl, Role role, Boolean visibility) {
this.name = name;
this.password = password;
this.nickname = nickname;
this.introduction = introduction;
this.profileUrl = profileUrl;
this.role = role;
this.visibility = (visibility != null) ? visibility : true; // null인 경우 true로 설정
this.visibility = visibility;
}
}

public static Member createMember(String name, String password, String nickname, String introduction,
String profileUrl, Role role, boolean visibility) {
return Member.builder()
.name(name)
.password(password)
.nickname(nickname)
.introduction(introduction)
.profileUrl(profileUrl)
.role(role)
.visibility(visibility)
.build();
}
}

29 changes: 29 additions & 0 deletions src/main/java/com/konkuk/chapterkeep/domain/Post.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
Expand Down Expand Up @@ -33,4 +34,32 @@ public class Post extends BaseTimeEntity {
@OneToMany(mappedBy = "post", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Comment> comments = new ArrayList<>();

@Builder
private Post(Member member, String title, boolean isAnonymous) {
this.member = member;
this.title = title;
this.isAnonymous = isAnonymous;

// 양방향 연관관계 설정
if (member != null) {
member.getPosts().add(this);
}
}

// 생성 메서드
public static Post createPost(Member member, String title, boolean isAnonymous) {
return Post.builder()
.member(member)
.title(title)
.isAnonymous(isAnonymous)
.build();
}

// 연관관계 제거 메서드
public void removeMember() {
if (this.member != null) {
this.member.getPosts().remove(this);
this.member = null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ public SignUpResDto signUpProcess(SignUpReqDto signUpReqDto, MultipartFile profi

Member member;
try {
member = Member.builder()
.name(username)
.password(bCryptPasswordEncoder.encode(signUpReqDto.getPassword())) // 암호화
.nickname(nickname)
.role(Role.USER)
.introduction(signUpReqDto.getIntroduction())
.visibility(true)
.profileUrl(profileUrl)
.build();
member = Member.createMember(
username,
bCryptPasswordEncoder.encode(signUpReqDto.getPassword()), // 암호화
nickname,
signUpReqDto.getIntroduction(),
profileUrl,
Role.USER,
true
);
memberRepository.save(member);
} catch (DataAccessException e) {
throw new GeneralException(Code.DATABASE_ERROR, "회원 정보 저장 도중 오류 발생");
Expand All @@ -63,8 +63,6 @@ public SignUpResDto signUpProcess(SignUpReqDto signUpReqDto, MultipartFile profi
.build();
}



public boolean isUsernameExists(String username) {
return memberRepository.existsByName(username);
}
Expand Down