FEAT : Ajout du mécanisme d'album avec partage et visibilité
This commit is contained in:
52
src/main/java/local/epul4a/fotosharing/model/Album.java
Normal file
52
src/main/java/local/epul4a/fotosharing/model/Album.java
Normal file
@@ -0,0 +1,52 @@
|
||||
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<Photo> photos = new HashSet<>();
|
||||
|
||||
@OneToMany(mappedBy = "album", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<Partage> partages = new HashSet<>();
|
||||
|
||||
|
||||
public enum Visibilite {
|
||||
PRIVATE,
|
||||
SHARED,
|
||||
PUBLIC
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user