h-lab/src/main/java/com/hlab/yanalyst/domain/opal/OpalDraft.java

66 lines
1.8 KiB
Java

package com.hlab.yanalyst.domain.opal;
import com.hlab.yanalyst.domain.video.YtVideo;
import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.Type;
import java.time.LocalDateTime;
@Entity
@Table(name = "opal_draft")
@Getter
@Setter
@NoArgsConstructor
public class OpalDraft {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "draft_id")
private Long draftId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "video_id", nullable = false)
private YtVideo video;
@Type(JsonBinaryType.class)
@Column(name = "request_payload_json", columnDefinition = "jsonb")
private String requestPayloadJson;
@Column(name = "response_text", columnDefinition = "TEXT")
private String responseText;
@Column(name = "old_script_summary", columnDefinition = "TEXT")
private String oldScriptSummary;
@Column(name = "new_script_summary", columnDefinition = "TEXT")
private String newScriptSummary;
@Column(name = "user_feedback", columnDefinition = "TEXT")
private String userFeedback;
@Column(name = "version_no", nullable = false)
private Integer versionNo;
@Column(name = "is_accepted", nullable = false)
private Boolean isAccepted = false;
@Column(name = "accepted_at")
private LocalDateTime acceptedAt;
@Column(name = "status", nullable = false, length = 20)
private String status = "SUCCESS";
@Column(name = "error_msg", columnDefinition = "TEXT")
private String errorMsg;
@CreationTimestamp
@Column(name = "created_at", nullable = false, updatable = false)
private LocalDateTime createdAt;
}