@@ -0,0 +1,60 @@
|
||||
package ru.soune.nocopy.entity.monitoring;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import ru.soune.nocopy.entity.file.FileEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "file_monitoring")
|
||||
public class FileMonitoringEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
private String id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "file_id", nullable = false)
|
||||
private FileEntity file;
|
||||
|
||||
@Column(name = "user_id", nullable = false)
|
||||
private Long userId;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "monitoring_type", nullable = false)
|
||||
private MonitoringType monitoringType;
|
||||
|
||||
@Column(name = "next_run", nullable = false)
|
||||
private LocalDateTime nextRun;
|
||||
|
||||
@Column(name = "last_run")
|
||||
private LocalDateTime lastRun;
|
||||
|
||||
@Column(name = "last_run_status")
|
||||
private String lastRunStatus;
|
||||
|
||||
@Column(name = "is_active", nullable = false)
|
||||
private boolean isActive = true;
|
||||
|
||||
@Column(name = "created_at", nullable = false)
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Column(name = "updated_at")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
@PrePersist
|
||||
public void prePersist() {
|
||||
this.createdAt = LocalDateTime.now();
|
||||
this.updatedAt = LocalDateTime.now();
|
||||
}
|
||||
|
||||
@PreUpdate
|
||||
public void preUpdate() {
|
||||
this.updatedAt = LocalDateTime.now();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package ru.soune.nocopy.entity.monitoring;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import ru.soune.nocopy.entity.file.FileEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "found_violations",
|
||||
indexes = {
|
||||
@Index(name = "idx_file_id", columnList = "file_id"),
|
||||
@Index(name = "idx_found_at", columnList = "found_at")
|
||||
})
|
||||
public class FoundViolationEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.UUID)
|
||||
private String id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "file_id", nullable = false)
|
||||
private FileEntity file;
|
||||
|
||||
@Column(name = "user_id", nullable = false)
|
||||
private Long userId;
|
||||
|
||||
@Column(name = "file_id_copy", nullable = false)
|
||||
private String fileId;
|
||||
|
||||
@Column(name = "file_name_copy")
|
||||
private String fileName;
|
||||
|
||||
@Column(name = "found_url", nullable = false, length = 2048)
|
||||
private String foundUrl;
|
||||
|
||||
@Column(name = "page_url", length = 2048)
|
||||
private String pageUrl;
|
||||
|
||||
@Column(name = "page_title")
|
||||
private String pageTitle;
|
||||
|
||||
@Column(name = "host")
|
||||
private String host;
|
||||
|
||||
@Column(name = "image_width")
|
||||
private Integer imageWidth;
|
||||
|
||||
@Column(name = "image_height")
|
||||
private Integer imageHeight;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "search_engine", nullable = false)
|
||||
private SearchEngine searchEngine;
|
||||
|
||||
@Column(name = "search_session_id")
|
||||
private String searchSessionId;
|
||||
|
||||
@Column(name = "found_at", nullable = false)
|
||||
private LocalDateTime foundAt;
|
||||
|
||||
@Column(name = "is_new", nullable = false)
|
||||
private boolean isNew = true;
|
||||
|
||||
@Column(name = "is_notified", nullable = false)
|
||||
private boolean isNotified = false;
|
||||
|
||||
@PrePersist
|
||||
public void prePersist() {
|
||||
this.foundAt = LocalDateTime.now();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package ru.soune.nocopy.entity.monitoring;
|
||||
|
||||
|
||||
public enum MonitoringType {
|
||||
MONITORING_DAILY, MONITORING_WEEKLY, MONITORING_MONTHLY, NONE
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package ru.soune.nocopy.entity.monitoring;
|
||||
|
||||
|
||||
public enum SearchEngine {
|
||||
YANDEX,
|
||||
GOOGLE,
|
||||
BOTH
|
||||
}
|
||||
@@ -2,5 +2,6 @@ package ru.soune.nocopy.entity.tarif;
|
||||
|
||||
|
||||
public enum TariffType {
|
||||
START, BASIC, PRO, ENTERPRISE, DEMO, BUISNES, CORPORAT, STUDIO, FREE, TOKEN_100, TOKEN_500, TOKEN_1000, TOKEN_5000;
|
||||
START, BASIC, PRO, ENTERPRISE, DEMO, BUISNES, CORPORAT, STUDIO, FREE, TOKEN_100, TOKEN_500, TOKEN_1000, TOKEN_5000,
|
||||
MONITORING_DAILY, MONITORING_WEEKLY, MONITORING_MONTHLY;
|
||||
}
|
||||
Reference in New Issue
Block a user