Skip to content

Commit 48fb64c

Browse files
committed
feat: comment 도메인 생성
1 parent 2e5c6db commit 48fb64c

File tree

4 files changed

+93
-0
lines changed

4 files changed

+93
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.back.domain.post.comment.controller;
2+
3+
import io.swagger.v3.oas.annotations.tags.Tag;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.web.bind.annotation.RequestMapping;
6+
import org.springframework.web.bind.annotation.RestController;
7+
8+
@RestController
9+
@RequestMapping("/api/posts/{postId}/comments")
10+
@Tag(name = "ApiCommentController", description = "API 댓글 컨트롤러")
11+
@RequiredArgsConstructor
12+
public class CommentController {
13+
14+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.back.domain.post.comment.entity;
2+
3+
import com.back.domain.post.post.entity.Post;
4+
import com.back.domain.user.entity.User;
5+
import jakarta.persistence.Column;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.EntityListeners;
8+
import jakarta.persistence.FetchType;
9+
import jakarta.persistence.GeneratedValue;
10+
import jakarta.persistence.GenerationType;
11+
import jakarta.persistence.Id;
12+
import jakarta.persistence.JoinColumn;
13+
import jakarta.persistence.ManyToOne;
14+
import jakarta.persistence.Table;
15+
import java.time.LocalDateTime;
16+
import lombok.AllArgsConstructor;
17+
import lombok.Builder;
18+
import lombok.Getter;
19+
import lombok.NoArgsConstructor;
20+
import org.springframework.data.annotation.CreatedDate;
21+
import org.springframework.data.annotation.LastModifiedDate;
22+
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
23+
24+
@Entity
25+
@Getter
26+
@Table(name = "comment")
27+
@EntityListeners(AuditingEntityListener.class)
28+
@NoArgsConstructor(access = lombok.AccessLevel.PROTECTED)
29+
@AllArgsConstructor
30+
@Builder
31+
public class Comment {
32+
// 각 댓글을 구분하는 유일한 번호
33+
@Id
34+
@GeneratedValue(strategy = GenerationType.IDENTITY)
35+
@Column(name = "id")
36+
private Long id;
37+
38+
// 해당 댓글이 작성된 게시글의 고유 식별자
39+
@ManyToOne(fetch = FetchType.LAZY)
40+
@JoinColumn(name = "post_id")
41+
private Post post;
42+
43+
// 해당 댓글을 작성한 유저의 고유 식별자
44+
@ManyToOne(fetch = FetchType.LAZY)
45+
@JoinColumn(name = "user_id")
46+
private User user;
47+
48+
// 댓글 작성 날짜
49+
@CreatedDate
50+
private LocalDateTime createdAt;
51+
52+
// 댓글 수정 날짜
53+
@LastModifiedDate
54+
private LocalDateTime updatedAt;
55+
56+
// 댓글 내용
57+
@Column(name = "content", nullable = false, columnDefinition = "TEXT")
58+
private String content;
59+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.back.domain.post.comment.repository;
2+
3+
import com.back.domain.post.comment.entity.Comment;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface CommentRepository extends JpaRepository<Comment, Long> {
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.back.domain.post.comment.service;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import org.springframework.stereotype.Service;
5+
6+
@Service
7+
@RequiredArgsConstructor
8+
public class CommentService {
9+
10+
}

0 commit comments

Comments
 (0)