diff --git a/src/main/java/kr/ac/ks/cs_web_back/domain/post/model/Post.java b/src/main/java/kr/ac/ks/cs_web_back/domain/post/model/Post.java new file mode 100644 index 0000000..f6dfa87 --- /dev/null +++ b/src/main/java/kr/ac/ks/cs_web_back/domain/post/model/Post.java @@ -0,0 +1,50 @@ +package kr.ac.ks.cs_web_back.domain.post.model; + +import kr.ac.ks.cs_web_back.domain.member.model.Member; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.CreationTimestamp; + +import java.time.LocalDateTime; + +@Entity +@Getter +@NoArgsConstructor +public class Post { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", nullable = false) + private Member member; + + @Column(nullable = false) + private String title; + + @Column(nullable = false) + private String content; + + @ColumnDefault("0") + @Column(nullable = false) + private int commentCount; + + @CreationTimestamp + @Column(nullable = false) + LocalDateTime createdAt; + + public Post(Member member, String title, String content) { + this.member = member; + this.title = title; + this.content = content; + } + + public static Post of(Member member, String title, String content) { + return new Post(member, title, content); + } +} +