CohortEntity.java
package fr.avenirsesr.portfolio.api.infrastructure.adapter.model;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import java.util.Set;
import java.util.UUID;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Entity
@Table(name = "cohort")
@NoArgsConstructor
@Getter
@Setter
public class CohortEntity extends AvenirsBaseEntity {
@Column(nullable = false)
private String name;
@Column(length = 255)
private String description;
@ManyToMany
@JoinTable(
name = "cohort_user",
joinColumns = @JoinColumn(name = "cohort_id"),
inverseJoinColumns = @JoinColumn(name = "user_id"))
private Set<UserEntity> users;
@ManyToOne(optional = false)
@JoinColumn(name = "program_progress_id")
private ProgramProgressEntity programProgress;
@ManyToMany(mappedBy = "cohorts")
private Set<AMSEntity> amsEntities;
public CohortEntity(
UUID id,
String name,
String description,
Set<UserEntity> users,
ProgramProgressEntity programProgress,
Set<AMSEntity> amsEntities) {
this.setId(id);
this.name = name;
this.description = description;
this.users = users;
this.programProgress = programProgress;
this.amsEntities = amsEntities;
}
}