74 lines
2.0 KiB
Java
74 lines
2.0 KiB
Java
package ru.soune.no_copy.entity;
|
|||
|
|
|
||
|
|
import jakarta.persistence.*;
|
||
|
|
import lombok.*;
|
||
|
|
import org.hibernate.annotations.CreationTimestamp;
|
||
|
|
|
||
|
|
import java.time.LocalDateTime;
|
||
|
|
|
||
|
|
@Entity
|
||
|
|
@NoArgsConstructor
|
||
|
|
@AllArgsConstructor
|
||
|
|
@Builder
|
||
|
|
@Getter @Setter
|
||
|
|
@Table(name = "user_content",
|
||
|
|
indexes = {
|
||
|
|
@Index(name = "idx_user_id", columnList = "user_id"),
|
||
|
|
@Index(name = "idx_file_type", columnList = "file_type"),
|
||
|
|
@Index(name = "idx_upload_date", columnList = "upload_date")
|
||
|
|
})
|
||
|
|
public class UserContent {
|
||
|
|
|
||
|
|
@Id
|
||
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||
|
|
private Long id;
|
||
|
|
|
||
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
||
|
|
@JoinColumn(name = "user_id", nullable = false,
|
||
|
|
foreignKey = @ForeignKey(name = "fk_usercontent_user"))
|
||
|
|
private User user;
|
||
|
|
|
||
|
|
@Column(nullable = false)
|
||
|
|
private String filename;
|
||
|
|
|
||
|
|
@Column(name = "original_filename", nullable = false)
|
||
|
|
private String originalFilename;
|
||
|
|
|
||
|
|
@Enumerated(EnumType.STRING)
|
||
|
|
@Column(name = "file_type", nullable = false, length = 16)
|
||
|
|
private FileType fileType;
|
||
|
|
|
||
|
|
@Column(name = "file_extension", length = 16)
|
||
|
|
private String fileExtension;
|
||
|
|
|
||
|
|
@Column(name = "file_size", nullable = false)
|
||
|
|
private Long fileSize;
|
||
|
|
|
||
|
|
@Column(name = "file_path", columnDefinition = "TEXT", nullable = false)
|
||
|
|
private String filePath;
|
||
|
|
|
||
|
|
@Column(name = "protection_level")
|
||
|
|
private Integer protectionLevel;
|
||
|
|
|
||
|
|
@Column(name = "geometric_resistant")
|
||
|
|
private Boolean geometricResistant = false;
|
||
|
|
|
||
|
|
@Column(name = "watermark_applied")
|
||
|
|
private Boolean watermarkApplied = false;
|
||
|
|
|
||
|
|
@Column(name = "protection_hash", length = 64)
|
||
|
|
private String protectionHash;
|
||
|
|
|
||
|
|
@Column(name = "watermark_id", length = 50)
|
||
|
|
private String watermarkId;
|
||
|
|
|
||
|
|
@Enumerated(EnumType.STRING)
|
||
|
|
@Column(length = 16)
|
||
|
|
private ContentStatus status = ContentStatus.PROCESSING;
|
||
|
|
|
||
|
|
@CreationTimestamp
|
||
|
|
@Column(name = "upload_date", nullable = false, updatable = false)
|
||
|
|
private LocalDateTime uploadDate;
|
||
|
|
}
|
||
|
|
|