package enseirb.myinpulse.model; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @Entity @Table(name = "project") public class Project { @Id @NotNull @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idProject; @Column(length = 255) private String projectName; private byte[] logo; private LocalDate creationDate; @Column(length = 255) private String projectStatus; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "idAdministrator") private Administrator projectAdministrator; @OneToMany(mappedBy = "projectParticipation", fetch = FetchType.LAZY, orphanRemoval = true) private List listEntrepreneurParticipation = new ArrayList<>(); @OneToOne(mappedBy = "projectProposed", fetch = FetchType.LAZY, orphanRemoval = true) private Entrepreneur entrepreneurProposed; @OneToMany(mappedBy = "projectSectionCell", fetch = FetchType.LAZY, orphanRemoval = true) private List listSectionCell = new ArrayList<>(); public Project() {} public Project( Long idProject, String projectName, byte[] logo, LocalDate creationDate, String projectStatus) { this.idProject = idProject; this.projectName = projectName; this.logo = logo; this.creationDate = creationDate; this.projectStatus = projectStatus; } 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 String getProjectStatus() { return projectStatus; } public void setProjectStatus(String projectStatus) { this.projectStatus = projectStatus; } }