57 lines
1.4 KiB
Java
57 lines
1.4 KiB
Java
package ru.soune.nocopy.entity;
|
|
|
|
import jakarta.persistence.*;
|
|
import lombok.*;
|
|
import org.springframework.data.annotation.CreatedDate;
|
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
|
|
|
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;
|
|
}
|