package enseirb.myinpulse.model; import jakarta.persistence.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "project") public class Project { @OneToMany(mappedBy = "projectParticipation", fetch = FetchType.LAZY, orphanRemoval = true) private final List listEntrepreneurParticipation = new ArrayList<>(); @OneToMany(mappedBy = "projectSectionCell", fetch = FetchType.LAZY, orphanRemoval = true) private final List listSectionCell = new ArrayList<>(); @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idProject; @Column(length = 255) private String projectName; private byte[] logo; private LocalDate creationDate; @Column private ProjectDecisionValue projectStatus; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "idAdministrator") private Administrator projectAdministrator; @OneToOne(mappedBy = "projectProposed", fetch = FetchType.LAZY, orphanRemoval = true) private Entrepreneur entrepreneurProposed; public Project() {} public Project( String projectName, byte[] logo, LocalDate creationDate, ProjectDecisionValue projectStatus, Administrator projectAdministrator) { this.projectName = projectName; this.logo = logo; this.creationDate = creationDate; // this.projectStatus = (long) projectStatus.ordinal(); this.projectStatus = projectStatus; this.projectAdministrator = projectAdministrator; } public Project( String projectName, byte[] logo, LocalDate creationDate, ProjectDecisionValue projectStatus, Administrator projectAdministrator, Entrepreneur entrepreneurProposed) { this.projectName = projectName; this.logo = logo; this.creationDate = creationDate; this.projectStatus = projectStatus; this.projectAdministrator = projectAdministrator; this.entrepreneurProposed = entrepreneurProposed; } public Long getIdProject() { return idProject; } public void setIdProject(Long idProject) { this.idProject = idProject; } public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } public byte[] getLogo() { return logo; } public void setLogo(byte[] logo) { this.logo = logo; } public LocalDate getCreationDate() { return creationDate; } public void setCreationDate(LocalDate creationDate) { this.creationDate = creationDate; } public ProjectDecisionValue getProjectStatus() { return projectStatus; } public void setProjectStatus(ProjectDecisionValue projectStatus) { this.projectStatus = projectStatus; } public List getListEntrepreneurParticipation() { return listEntrepreneurParticipation; } public void updateListEntrepreneurParticipation(Entrepreneur projectParticipant) { listEntrepreneurParticipation.add(projectParticipant); } public List getListSectionCell() { return listSectionCell; } public void updateListSectionCell(SectionCell projectSectionCell) { listSectionCell.add(projectSectionCell); } public Administrator getProjectAdministrator() { return projectAdministrator; } public void setProjectAdministrator(Administrator projectAdministrator) { this.projectAdministrator = projectAdministrator; } public Entrepreneur getEntrepreneurProposed() { return entrepreneurProposed; } public void setEntrepreneurProposed(Entrepreneur entrepreneurProposed) { this.entrepreneurProposed = entrepreneurProposed; } }