TeacherReport.java
package com.wavii.model;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDateTime;
import java.util.UUID;
@Entity
@Table(name = "teacher_reports")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeacherReport {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "teacher_id", nullable = false)
private User teacher;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "reporter_id", nullable = false)
private User reporter;
@Column(length = 120, nullable = false)
private String reason;
@Column(length = 1000)
private String details;
@Column(length = 30, nullable = false)
@Builder.Default
private String status = "open";
@Column(nullable = false, updatable = false)
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
}