package com.openisle.model; import jakarta.persistence.*; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.annotations.CreationTimestamp; import java.time.LocalDateTime; @Getter @Setter @NoArgsConstructor @Entity @Table(name = "post_change_logs") @Inheritance(strategy = InheritanceType.JOINED) public abstract class PostChangeLog { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY, optional = false) @JoinColumn(name = "post_id") private Post post; @ManyToOne(fetch = FetchType.LAZY, optional = true) @JoinColumn(name = "user_id") private User user; @CreationTimestamp @Column(nullable = false, updatable = false) private LocalDateTime createdAt; @Enumerated(EnumType.STRING) @Column(nullable = false) private PostChangeType type; }