package local.epul4a.fotosharing.model; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import java.time.LocalDateTime; import java.util.HashSet; import java.util.Set; @Entity @Getter @Setter public class Album { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String nom; @Column(length = 1000) private String description; @ManyToOne(optional = false) private Utilisateur proprietaire; private LocalDateTime dateCreation; @Enumerated(EnumType.STRING) @Column(nullable = false) private Visibilite visibilite; @ManyToMany @JoinTable( name = "album_photo", joinColumns = @JoinColumn(name = "album_id"), inverseJoinColumns = @JoinColumn(name = "photo_id") ) private Set photos = new HashSet<>(); @OneToMany(mappedBy = "album", cascade = CascadeType.ALL, orphanRemoval = true) private Set partages = new HashSet<>(); public enum Visibilite { PRIVATE, SHARED, PUBLIC } }