Compare commits
1
Commits
149bd961e2
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47cde9caa5 |
@@ -1,36 +0,0 @@
|
|||||||
### MODULES
|
|
||||||
|
|
||||||
-api
|
|
||||||
- register +
|
|
||||||
- logut +
|
|
||||||
- login +
|
|
||||||
- check-demo-status
|
|
||||||
- check-token-balance
|
|
||||||
- content
|
|
||||||
- dismiss-notification
|
|
||||||
- download
|
|
||||||
- download-certificate
|
|
||||||
- download-pdf-tracked
|
|
||||||
- export-report
|
|
||||||
- forgor-password
|
|
||||||
- generate-certificate
|
|
||||||
- get-pdf-tracking-token
|
|
||||||
- get-user-data
|
|
||||||
- login ?
|
|
||||||
- logaut ?
|
|
||||||
- notifications-api
|
|
||||||
- preview-certificate
|
|
||||||
- register
|
|
||||||
- reports
|
|
||||||
- reset-password
|
|
||||||
- token-manager
|
|
||||||
- track-pdf-open
|
|
||||||
- upload
|
|
||||||
- validate-upload
|
|
||||||
- verify-video
|
|
||||||
- violations
|
|
||||||
|
|
||||||
infra
|
|
||||||
-grafana/prom +
|
|
||||||
- ci/cd
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package ru.soune.no_copy.dto;
|
|
||||||
|
|
||||||
import ru.soune.no_copy.entity.ContentStatus;
|
|
||||||
import ru.soune.no_copy.entity.FileType;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
public record UserContentResponse(
|
|
||||||
Long id,
|
|
||||||
String filename,
|
|
||||||
String originalFilename,
|
|
||||||
FileType fileType,
|
|
||||||
long fileSize,
|
|
||||||
String filePath,
|
|
||||||
ContentStatus status,
|
|
||||||
LocalDateTime uploadDate
|
|
||||||
) {}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package ru.soune.no_copy.entity;
|
|
||||||
|
|
||||||
public enum ContentStatus {
|
|
||||||
PROCESSING, COMPLETED, ERROR
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package ru.soune.no_copy.entity;
|
|
||||||
|
|
||||||
public enum FileType {
|
|
||||||
PHOTO, DOCUMENT, AUDIO, VIDEO
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package ru.soune.no_copy.repository;
|
|
||||||
|
|
||||||
import org.springframework.data.domain.Pageable;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
import ru.soune.no_copy.entity.FileType;
|
|
||||||
import ru.soune.no_copy.entity.UserContent;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface UserContentRepository extends JpaRepository<UserContent, Long> {
|
|
||||||
List<UserContent> findByUserIdOrderByUploadDateDesc(Long userId);
|
|
||||||
|
|
||||||
List<UserContent> findByUserIdAndFileTypeOrderByUploadDateDesc(
|
|
||||||
Long userId, FileType type, Pageable pageable
|
|
||||||
);
|
|
||||||
|
|
||||||
long countByUserIdAndFileType(Long userId, FileType type);
|
|
||||||
|
|
||||||
long countByUserId(Long userId);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user