chore(quarkus-327): bump to Quarkus 3.27.3 LTS, make pom autonomous, fix 3 tests (NPE guard, equalsHashCode with shared refs), rename deprecated config keys

This commit is contained in:
2026-04-23 14:45:54 +00:00
parent 8cec38f7b3
commit fb3a32817b
312 changed files with 50688 additions and 50645 deletions

View File

@@ -1,117 +1,117 @@
package dev.lions.unionflow.server.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import lombok.*;
/**
* Entité FeedbackEvenement représentant l'évaluation d'un membre sur un événement
*
* @author UnionFlow Team
* @version 1.0
* @since 2026-03-16
*/
@Entity
@Table(
name = "feedbacks_evenement",
indexes = {
@Index(name = "idx_feedback_membre", columnList = "membre_id"),
@Index(name = "idx_feedback_evenement", columnList = "evenement_id"),
@Index(name = "idx_feedback_date", columnList = "date_feedback")
},
uniqueConstraints = {
@UniqueConstraint(
name = "uk_feedback_membre_evenement",
columnNames = {"membre_id", "evenement_id"})
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class FeedbackEvenement extends BaseEntity {
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "membre_id", nullable = false)
private Membre membre;
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "evenement_id", nullable = false)
private Evenement evenement;
@NotNull
@Min(1)
@Max(5)
@Column(name = "note", nullable = false)
private Integer note;
@Column(name = "commentaire", length = 1000)
private String commentaire;
@Builder.Default
@Column(name = "date_feedback", nullable = false)
private LocalDateTime dateFeedback = LocalDateTime.now();
@Column(name = "moderation_statut", length = 20)
@Builder.Default
private String moderationStatut = ModerationStatut.PUBLIE.name();
@Column(name = "raison_moderation", length = 500)
private String raisonModeration;
/** Énumération des statuts de modération */
public enum ModerationStatut {
PUBLIE, // Visible publiquement
EN_ATTENTE, // En attente de modération
REJETE // Rejeté par modération
}
// Méthodes utilitaires
/** Vérifie si le feedback est publié */
public boolean isPublie() {
return ModerationStatut.PUBLIE.name().equals(this.moderationStatut);
}
/** Marque le feedback comme en attente de modération */
public void mettreEnAttente(String raison) {
this.moderationStatut = ModerationStatut.EN_ATTENTE.name();
this.raisonModeration = raison;
setDateModification(LocalDateTime.now());
}
/** Publie le feedback */
public void publier() {
this.moderationStatut = ModerationStatut.PUBLIE.name();
this.raisonModeration = null;
setDateModification(LocalDateTime.now());
}
/** Rejette le feedback */
public void rejeter(String raison) {
this.moderationStatut = ModerationStatut.REJETE.name();
this.raisonModeration = raison;
setDateModification(LocalDateTime.now());
}
@PreUpdate
public void preUpdate() {
super.onUpdate();
}
@Override
public String toString() {
return String.format(
"FeedbackEvenement{id=%s, membre=%s, evenement=%s, note=%d, dateFeedback=%s}",
getId(),
membre != null ? membre.getEmail() : "null",
evenement != null ? evenement.getTitre() : "null",
note,
dateFeedback);
}
}
package dev.lions.unionflow.server.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import lombok.*;
/**
* Entité FeedbackEvenement représentant l'évaluation d'un membre sur un événement
*
* @author UnionFlow Team
* @version 1.0
* @since 2026-03-16
*/
@Entity
@Table(
name = "feedbacks_evenement",
indexes = {
@Index(name = "idx_feedback_membre", columnList = "membre_id"),
@Index(name = "idx_feedback_evenement", columnList = "evenement_id"),
@Index(name = "idx_feedback_date", columnList = "date_feedback")
},
uniqueConstraints = {
@UniqueConstraint(
name = "uk_feedback_membre_evenement",
columnNames = {"membre_id", "evenement_id"})
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class FeedbackEvenement extends BaseEntity {
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "membre_id", nullable = false)
private Membre membre;
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "evenement_id", nullable = false)
private Evenement evenement;
@NotNull
@Min(1)
@Max(5)
@Column(name = "note", nullable = false)
private Integer note;
@Column(name = "commentaire", length = 1000)
private String commentaire;
@Builder.Default
@Column(name = "date_feedback", nullable = false)
private LocalDateTime dateFeedback = LocalDateTime.now();
@Column(name = "moderation_statut", length = 20)
@Builder.Default
private String moderationStatut = ModerationStatut.PUBLIE.name();
@Column(name = "raison_moderation", length = 500)
private String raisonModeration;
/** Énumération des statuts de modération */
public enum ModerationStatut {
PUBLIE, // Visible publiquement
EN_ATTENTE, // En attente de modération
REJETE // Rejeté par modération
}
// Méthodes utilitaires
/** Vérifie si le feedback est publié */
public boolean isPublie() {
return ModerationStatut.PUBLIE.name().equals(this.moderationStatut);
}
/** Marque le feedback comme en attente de modération */
public void mettreEnAttente(String raison) {
this.moderationStatut = ModerationStatut.EN_ATTENTE.name();
this.raisonModeration = raison;
setDateModification(LocalDateTime.now());
}
/** Publie le feedback */
public void publier() {
this.moderationStatut = ModerationStatut.PUBLIE.name();
this.raisonModeration = null;
setDateModification(LocalDateTime.now());
}
/** Rejette le feedback */
public void rejeter(String raison) {
this.moderationStatut = ModerationStatut.REJETE.name();
this.raisonModeration = raison;
setDateModification(LocalDateTime.now());
}
@PreUpdate
public void preUpdate() {
super.onUpdate();
}
@Override
public String toString() {
return String.format(
"FeedbackEvenement{id=%s, membre=%s, evenement=%s, note=%d, dateFeedback=%s}",
getId(),
membre != null ? membre.getEmail() : "null",
evenement != null ? evenement.getTitre() : "null",
note,
dateFeedback);
}
}