package com.magamochi.content.model.entity; import com.magamochi.catalog.model.entity.Language; import com.magamochi.catalog.model.entity.MangaContentProvider; import com.magamochi.common.model.enumeration.ContentType; import jakarta.persistence.*; import java.time.Instant; import java.util.List; import lombok.*; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; @Entity @Table(name = "manga_contents") @Builder @NoArgsConstructor @AllArgsConstructor @Getter @Setter public class MangaContent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = "manga_content_provider_id") private MangaContentProvider mangaContentProvider; @Builder.Default private ContentType type = ContentType.CHAPTER; private String title; private String url; @Builder.Default private Boolean downloaded = false; @CreationTimestamp private Instant createdAt; @UpdateTimestamp private Instant updatedAt; @OneToMany(mappedBy = "mangaContent") private List mangaContentImages; @ManyToOne @JoinColumn(name = "language_id") private Language language; }