39 lines
1.1 KiB
Java
39 lines
1.1 KiB
Java
package dev.lions.unionflow.server.entity;
|
||
|
||
import jakarta.persistence.*;
|
||
import jakarta.validation.constraints.NotNull;
|
||
import lombok.*;
|
||
|
||
import java.util.UUID;
|
||
|
||
/**
|
||
* Lien « suivi » entre deux membres : le membre connecté (follower) suit un autre membre (suivi).
|
||
* Utilisé pour la fonctionnalité Réseau / Suivre dans l’app mobile.
|
||
*/
|
||
@Entity
|
||
@Table(
|
||
name = "membre_suivi",
|
||
uniqueConstraints = @UniqueConstraint(columnNames = { "follower_utilisateur_id", "suivi_utilisateur_id" }),
|
||
indexes = {
|
||
@Index(name = "idx_membre_suivi_follower", columnList = "follower_utilisateur_id"),
|
||
@Index(name = "idx_membre_suivi_suivi", columnList = "suivi_utilisateur_id")
|
||
}
|
||
)
|
||
@Data
|
||
@NoArgsConstructor
|
||
@AllArgsConstructor
|
||
@Builder
|
||
@EqualsAndHashCode(callSuper = true)
|
||
public class MembreSuivi extends BaseEntity {
|
||
|
||
/** Utilisateur qui suit (membre connecté). */
|
||
@NotNull
|
||
@Column(name = "follower_utilisateur_id", nullable = false)
|
||
private UUID followerUtilisateurId;
|
||
|
||
/** Utilisateur suivi (membre cible). */
|
||
@NotNull
|
||
@Column(name = "suivi_utilisateur_id", nullable = false)
|
||
private UUID suiviUtilisateurId;
|
||
}
|