ProjectMember.java
package com.edtech.model;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.PrePersist;
import jakarta.persistence.Table;
import java.time.ZonedDateTime;
import java.util.UUID;
/** Documentação para ProjectMember. */
@Entity
@Table(name = "project_members")
public class ProjectMember {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_id", nullable = false)
private Project project;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
private User user;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private ProjectRole role;
@Column(name = "joined_at", nullable = false, updatable = false)
private ZonedDateTime joinedAt;
@PrePersist
protected void onCreate() {
this.joinedAt = ZonedDateTime.now();
}
// Getters and Setters
/** Documentação para o método getId. */
public UUID getId() {
return id;
}
/** Documentação para o método setId. */
public void setId(UUID id) {
this.id = id;
}
/** Documentação para o método getProject. */
public Project getProject() {
return project;
}
/** Documentação para o método setProject. */
public void setProject(Project project) {
this.project = project;
}
/** Documentação para o método getUser. */
public User getUser() {
return user;
}
/** Documentação para o método setUser. */
public void setUser(User user) {
this.user = user;
}
/** Documentação para o método getRole. */
public ProjectRole getRole() {
return role;
}
/** Documentação para o método setRole. */
public void setRole(ProjectRole role) {
this.role = role;
}
/** Documentação para o método getJoinedAt. */
public ZonedDateTime getJoinedAt() {
return joinedAt;
}
/** Documentação para o método setJoinedAt. */
public void setJoinedAt(ZonedDateTime joinedAt) {
this.joinedAt = joinedAt;
}
}