48 lines
1.2 KiB
Java
48 lines
1.2 KiB
Java
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<MangaContentImage> mangaContentImages;
|
|
|
|
@ManyToOne
|
|
@JoinColumn(name = "language_id")
|
|
private Language language;
|
|
}
|