HighlightReaction.java
package qwerty.chaekit.domain.highlight.reaction;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import qwerty.chaekit.domain.BaseEntity;
import qwerty.chaekit.domain.highlight.Highlight;
import qwerty.chaekit.domain.highlight.comment.HighlightComment;
import qwerty.chaekit.domain.member.user.UserProfile;
@Entity
@Getter
@Table(name = "highlight_reaction")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class HighlightReaction extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="author_id")
private UserProfile author;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="highlight_id")
private Highlight highlight;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="comment_id")
private HighlightComment comment;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private ReactionType reactionType;
@Builder
public HighlightReaction(UserProfile author, Highlight highlight, HighlightComment comment, ReactionType reactionType) {
this.author = author;
this.highlight = highlight;
this.comment = comment;
this.reactionType = reactionType;
}
}