dev add monitoring basic
Test Workflow / test (push) Successful in 4s

This commit is contained in:
vladp
2026-02-27 17:57:55 +07:00
parent 76aa04e174
commit c09a3a3a18
21 changed files with 815 additions and 7 deletions
@@ -0,0 +1,23 @@
package ru.soune.nocopy.dto.monitoring;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class GetViolationsRequest {
@JsonProperty("file_id")
private String fileId;
@JsonProperty("page")
private Integer page;
@JsonProperty("page_size")
private Integer pageSize;
@JsonProperty("mark_as_read")
private boolean markAsRead;
@JsonProperty("auth_token")
private String authToken;
}
@@ -0,0 +1,40 @@
package ru.soune.nocopy.dto.monitoring;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import ru.soune.nocopy.entity.monitoring.MonitoringType;
import java.time.LocalDateTime;
/**
* Response for status monitoring
*/
@Data
@Builder
public class MonitoringStatusResponse {
@JsonProperty("file_id")
private String fileId;
@JsonProperty("file_name")
private String fileName;
@JsonProperty("monitoring_type")
private MonitoringType monitoringType;
@JsonProperty("next_run")
private LocalDateTime nextRun;
@JsonProperty("last_run")
private LocalDateTime lastRun;
@JsonProperty("last_run_status")
private String lastRunStatus;
@JsonProperty("is_active")
private boolean isActive;
@JsonProperty("new_violations_count")
private long newViolationsCount;
}
@@ -0,0 +1,20 @@
package ru.soune.nocopy.dto.monitoring;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import ru.soune.nocopy.entity.monitoring.MonitoringType;
/**
Set monitoring request
*/
@Data
public class SetMonitoringRequest {
@JsonProperty("file_id")
private String fileId;
@JsonProperty("monitoring_type")
private MonitoringType monitoringType;
@JsonProperty("auth_token")
private String authToken;
}
@@ -0,0 +1,43 @@
package ru.soune.nocopy.dto.monitoring;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import ru.soune.nocopy.entity.monitoring.SearchEngine;
import java.time.LocalDateTime;
@Data
@Builder
public class ViolationResponse {
@JsonProperty("id")
private String id;
@JsonProperty("file_id")
private String fileId;
@JsonProperty("file_name")
private String fileName;
@JsonProperty("found_url")
private String foundUrl;
@JsonProperty("page_url")
private String pageUrl;
@JsonProperty("page_title")
private String pageTitle;
@JsonProperty("host")
private String host;
@JsonProperty("search_engine")
private SearchEngine searchEngine;
@JsonProperty("found_at")
private LocalDateTime foundAt;
@JsonProperty("is_new")
private boolean isNew;
}