package ru.soune.nocopy.entity.file; import jakarta.persistence.*; import lombok.*; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import ru.soune.nocopy.entity.user.User; import java.time.LocalDateTime; @Entity @Table(name = "violations") @Getter @Setter @NoArgsConstructor @AllArgsConstructor @ToString @EntityListeners(AuditingEntityListener.class) public class Violation { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long violationId; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) @ToString.Exclude private User user; @Column(name = "violation_type", nullable = false, length = 50) private String violationType; @Column(name = "description", columnDefinition = "TEXT") private String description; @Column(name = "content_id") private Long contentId; @Column(name = "status", nullable = false, length = 20) private String status = "new"; @Column(name = "severity", length = 20) private String severity; @Column(name = "resolved_at") private LocalDateTime resolvedAt; @Column(name = "resolved_by") private Long resolvedBy; @Column(name = "resolution_notes", columnDefinition = "TEXT") private String resolutionNotes; @CreatedDate @Column(name = "created_at", nullable = false, updatable = false) private LocalDateTime createdAt; }