Skip to content

Commit fb58507

Browse files
committed
2 parents c315edf + b98551d commit fb58507

24 files changed

+428
-24
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.back.domain.cocktail.comment.dto;
2+
3+
import com.back.domain.post.comment.enums.CommentStatus;
4+
import jakarta.validation.constraints.NotBlank;
5+
6+
public record CocktailCommentCreateRequestDto(
7+
CommentStatus status,
8+
@NotBlank(message = "내용은 필수입니다.")
9+
String content
10+
) {
11+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.back.domain.cocktail.comment.dto;
2+
3+
import com.back.domain.cocktail.comment.entity.CocktailComment;
4+
import com.back.domain.post.comment.enums.CommentStatus;
5+
6+
import java.time.LocalDateTime;
7+
8+
public record CocktailCommentResponseDto(
9+
Long commentId,
10+
Long postId,
11+
String userNickName,
12+
LocalDateTime createdAt,
13+
LocalDateTime updatedAt,
14+
CommentStatus status,
15+
String content
16+
) {
17+
public CocktailCommentResponseDto(CocktailComment cocktailcomment) {
18+
this(
19+
cocktailcomment.getId(),
20+
cocktailcomment.getCocktail().getId(),
21+
cocktailcomment.getUser().getNickname(),
22+
cocktailcomment.getCreatedAt(),
23+
cocktailcomment.getUpdatedAt(),
24+
cocktailcomment.getStatus(),
25+
cocktailcomment.getContent()
26+
);
27+
}
28+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.back.domain.cocktail.comment.dto;
2+
3+
import com.back.domain.post.comment.enums.CommentStatus;
4+
5+
public record CocktailCommentUpdateRequestDto(
6+
CommentStatus status,
7+
String content
8+
) {
9+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.back.domain.cocktail.comment.entity;
2+
3+
import com.back.domain.cocktail.entity.Cocktail;
4+
import com.back.domain.post.comment.enums.CommentStatus;
5+
import com.back.domain.user.entity.User;
6+
import jakarta.persistence.*;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Builder;
9+
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
11+
import org.springframework.data.annotation.CreatedDate;
12+
import org.springframework.data.annotation.LastModifiedDate;
13+
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
14+
15+
import java.time.LocalDateTime;
16+
17+
@Entity
18+
@Getter
19+
@Table(name = "cocktailcomment")
20+
@EntityListeners(AuditingEntityListener.class)
21+
@NoArgsConstructor(access = lombok.AccessLevel.PROTECTED)
22+
@AllArgsConstructor
23+
@Builder
24+
public class CocktailComment {
25+
26+
@Id
27+
@GeneratedValue(strategy = GenerationType.IDENTITY)
28+
@Column(name = "id")
29+
private Long id;
30+
31+
// 해당 칵테일댓글이 작성된 게시글의 고유 식별자
32+
@ManyToOne(fetch = FetchType.LAZY)
33+
@JoinColumn(name = "cocktail_id")
34+
private Cocktail cocktail;
35+
36+
// 해당 칵테일댓글을 작성한 유저의 고유 식별자
37+
@ManyToOne(fetch = FetchType.LAZY)
38+
@JoinColumn(name = "user_id")
39+
private User user;
40+
41+
// 칵테일댓글 작성 날짜
42+
@CreatedDate
43+
private LocalDateTime createdAt;
44+
45+
// 칵테일댓글 수정 날짜
46+
@LastModifiedDate
47+
private LocalDateTime updatedAt;
48+
49+
// 칵테일댓글 게시 상태 (기본값: 공개)
50+
@Builder.Default
51+
@Enumerated(EnumType.STRING)
52+
@Column(name = "status", nullable = false)
53+
private CommentStatus status = CommentStatus.PUBLIC;
54+
55+
// 칵테일댓글 내용
56+
@Column(name = "content", nullable = false, columnDefinition = "TEXT")
57+
private String content;
58+
59+
public void updateStatus(CommentStatus status) {
60+
this.status = status;
61+
}
62+
63+
public void updateContent(String content) {
64+
this.content = content;
65+
}
66+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.back.domain.cocktail.comment.repository;
2+
3+
import com.back.domain.post.comment.entity.Comment;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface CocktailCommentRepository extends JpaRepository<Comment, Long> {
7+
8+
}

src/main/java/com/back/domain/cocktail/controller/CocktailShareController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public ResponseEntity<RsData<Map<String, String>>> getShareLink(@PathVariable Lo
2424
.map(cocktail -> {
2525
Map<String, String> response = Map.of(
2626
// 공유 URL
27-
"url", "https://www.ssoul.or/cocktails/" + cocktail.getCocktailId(),
27+
"url", "https://www.ssoul.or/cocktails/" + cocktail.getId(),
2828
// 공유 제목
2929
"title", cocktail.getCocktailName(),
3030
// 공유 이미지 (선택)

src/main/java/com/back/domain/cocktail/dto/CocktailDetailResponseDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public CocktailDetailResponseDto(
3939
}
4040

4141
public CocktailDetailResponseDto(Cocktail cocktail) {
42-
this.cocktailId = cocktail.getCocktailId();
42+
this.cocktailId = cocktail.getId();
4343
this.cocktailName = cocktail.getCocktailName();
4444
this.alcoholStrength = cocktail.getAlcoholStrength();
4545
this.cocktailType = cocktail.getCocktailType();

src/main/java/com/back/domain/cocktail/entity/Cocktail.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
import com.back.domain.cocktail.enums.CocktailType;
66
import jakarta.persistence.*;
77
import lombok.*;
8+
import org.springframework.data.annotation.CreatedDate;
9+
import org.springframework.data.annotation.LastModifiedDate;
10+
811
import java.time.LocalDateTime;
12+
913
import static jakarta.persistence.GenerationType.IDENTITY;
1014

1115

@@ -19,7 +23,7 @@
1923
public class Cocktail {
2024
@Id
2125
@GeneratedValue(strategy = IDENTITY)
22-
private long cocktailId;
26+
private long id;
2327

2428
private String cocktailName;
2529

@@ -40,7 +44,9 @@ public class Cocktail {
4044

4145
private String cocktailImgUrl;
4246

47+
@CreatedDate
4348
private LocalDateTime createdAt;
4449

50+
@LastModifiedDate
4551
private LocalDateTime updatedAt;
4652
}

src/main/java/com/back/domain/cocktail/repository/CocktailRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
public interface CocktailRepository extends JpaRepository<Cocktail, Long> {
1818

1919
// 첫 요청 → 최신순(내림차순)으로 정렬해서 가져오기
20-
List<Cocktail> findAllByOrderByCocktailIdDesc(Pageable pageable);
20+
List<Cocktail> findAllByOrderByIdDesc(Pageable pageable);
2121

2222
// 무한스크롤 → lastId보다 작은 ID들 가져오기
23-
List<Cocktail> findByCocktailIdLessThanOrderByCocktailIdDesc(Long lastId, Pageable pageable);
23+
List<Cocktail> findByIdLessThanOrderByIdDesc(Long lastId, Pageable pageable);
2424

2525
List<Cocktail> findByCocktailNameContainingIgnoreCaseOrIngredientContainingIgnoreCase(String cocktailName, String ingredient);
2626

src/main/java/com/back/domain/cocktail/service/CocktailService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ public List<CocktailSummaryResponseDto> getCocktails (Long lastId, Integer size)
4545
List<Cocktail> cocktails;
4646
if (lastId == null) {
4747
// 첫 요청 → 최신 데이터부터
48-
cocktails = cocktailRepository.findAllByOrderByCocktailIdDesc(PageRequest.of(0, fetchSize));
48+
cocktails = cocktailRepository.findAllByOrderByIdDesc(PageRequest.of(0, fetchSize));
4949
} else {
5050
// 무한스크롤 → 마지막 ID보다 작은 데이터 조회
51-
cocktails = cocktailRepository.findByCocktailIdLessThanOrderByCocktailIdDesc(lastId, PageRequest.of(0, fetchSize));
51+
cocktails = cocktailRepository.findByIdLessThanOrderByIdDesc(lastId, PageRequest.of(0, fetchSize));
5252
}
5353
return cocktails.stream()
54-
.map(c -> new CocktailSummaryResponseDto(c.getCocktailId(), c.getCocktailName(), c.getCocktailImgUrl()))
54+
.map(c -> new CocktailSummaryResponseDto(c.getId(), c.getCocktailName(), c.getCocktailImgUrl()))
5555
.collect(Collectors.toList());
5656
}
5757

@@ -106,7 +106,7 @@ public List<CocktailSearchResponseDto> searchAndFilter (CocktailSearchRequestDto
106106
//Cocktail 엔티티 → CocktailResponseDto 응답 DTO로 바꿔주는 과정
107107
List<CocktailSearchResponseDto> resultDtos = pageResult.stream()
108108
.map(c -> new CocktailSearchResponseDto(
109-
c.getCocktailId(),
109+
c.getId(),
110110
c.getCocktailName(),
111111
c.getAlcoholStrength(),
112112
c.getCocktailType(),

0 commit comments

Comments
 (0)