ClassMessage.java
package com.wavii.model;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDateTime;
import java.util.UUID;
/**
* Entidad que representa un mensaje de chat dentro de una matriculación de clase.
* Permite la comunicación privada entre profesor y alumno.
*/
@Entity
@Table(name = "class_messages")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ClassMessage {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "enrollment_id", nullable = false)
private ClassEnrollment enrollment;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "sender_id", nullable = false)
private User sender;
@Column(length = 1500, nullable = false)
private String content;
@Column(nullable = false, updatable = false)
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now();
}