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,94 +1,94 @@
package dev.lions.unionflow.server.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import lombok.*;
/**
* Paramètres de cotisation configurés par le manager de chaque organisation.
*
* <p>
* Le manager peut définir :
* <ul>
* <li>Le montant mensuel et annuel fixé pour tous les membres</li>
* <li>La date de départ du calcul des impayés (configurable)</li>
* <li>Le délai en jours avant passage automatique en statut INACTIF</li>
* </ul>
*
* <p>
* Table : {@code parametres_cotisation_organisation}
*/
@Entity
@Table(name = "parametres_cotisation_organisation", indexes = {
@Index(name = "idx_param_cot_org", columnList = "organisation_id", unique = true)
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class ParametresCotisationOrganisation extends BaseEntity {
@NotNull
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "organisation_id", nullable = false, unique = true)
private Organisation organisation;
@Builder.Default
@DecimalMin("0.00")
@Digits(integer = 10, fraction = 2)
@Column(name = "montant_cotisation_mensuelle", precision = 12, scale = 2)
private BigDecimal montantCotisationMensuelle = BigDecimal.ZERO;
@Builder.Default
@DecimalMin("0.00")
@Digits(integer = 10, fraction = 2)
@Column(name = "montant_cotisation_annuelle", precision = 12, scale = 2)
private BigDecimal montantCotisationAnnuelle = BigDecimal.ZERO;
@Column(name = "devise", nullable = false, length = 3)
private String devise;
/**
* Date de référence pour le calcul des membres «à jour».
* Toutes les échéances depuis cette date doivent être payées.
* Configurable par le manager.
*/
@Column(name = "date_debut_calcul_ajour")
private LocalDate dateDebutCalculAjour;
/**
* Nombre de jours de retard avant passage automatique du statut membre →
* INACTIF.
* Défaut : 30 jours.
*/
@Builder.Default
@Min(1)
@Column(name = "delai_retard_avant_inactif_jours", nullable = false)
private Integer delaiRetardAvantInactifJours = 30;
@Builder.Default
@Column(name = "cotisation_obligatoire", nullable = false)
private Boolean cotisationObligatoire = true;
/**
* Active la génération automatique mensuelle des cotisations pour cette organisation.
* Quand {@code true}, un job planifié crée automatiquement une cotisation par membre actif
* le 1er de chaque mois, en utilisant les barèmes par rôle ou le montant par défaut.
*/
@Builder.Default
@Column(name = "generation_automatique_activee", nullable = false)
private Boolean generationAutomatiqueActivee = false;
// ── Méthodes métier ────────────────────────────────────────────────────────
/**
* Vérifie si la date de référence pour les impayés est définie.
* Sans cette date, aucun calcul d'ancienneté des impayés n'est possible.
*/
public boolean isCalculAjourActive() {
return dateDebutCalculAjour != null;
}
}
package dev.lions.unionflow.server.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import lombok.*;
/**
* Paramètres de cotisation configurés par le manager de chaque organisation.
*
* <p>
* Le manager peut définir :
* <ul>
* <li>Le montant mensuel et annuel fixé pour tous les membres</li>
* <li>La date de départ du calcul des impayés (configurable)</li>
* <li>Le délai en jours avant passage automatique en statut INACTIF</li>
* </ul>
*
* <p>
* Table : {@code parametres_cotisation_organisation}
*/
@Entity
@Table(name = "parametres_cotisation_organisation", indexes = {
@Index(name = "idx_param_cot_org", columnList = "organisation_id", unique = true)
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class ParametresCotisationOrganisation extends BaseEntity {
@NotNull
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "organisation_id", nullable = false, unique = true)
private Organisation organisation;
@Builder.Default
@DecimalMin("0.00")
@Digits(integer = 10, fraction = 2)
@Column(name = "montant_cotisation_mensuelle", precision = 12, scale = 2)
private BigDecimal montantCotisationMensuelle = BigDecimal.ZERO;
@Builder.Default
@DecimalMin("0.00")
@Digits(integer = 10, fraction = 2)
@Column(name = "montant_cotisation_annuelle", precision = 12, scale = 2)
private BigDecimal montantCotisationAnnuelle = BigDecimal.ZERO;
@Column(name = "devise", nullable = false, length = 3)
private String devise;
/**
* Date de référence pour le calcul des membres «à jour».
* Toutes les échéances depuis cette date doivent être payées.
* Configurable par le manager.
*/
@Column(name = "date_debut_calcul_ajour")
private LocalDate dateDebutCalculAjour;
/**
* Nombre de jours de retard avant passage automatique du statut membre →
* INACTIF.
* Défaut : 30 jours.
*/
@Builder.Default
@Min(1)
@Column(name = "delai_retard_avant_inactif_jours", nullable = false)
private Integer delaiRetardAvantInactifJours = 30;
@Builder.Default
@Column(name = "cotisation_obligatoire", nullable = false)
private Boolean cotisationObligatoire = true;
/**
* Active la génération automatique mensuelle des cotisations pour cette organisation.
* Quand {@code true}, un job planifié crée automatiquement une cotisation par membre actif
* le 1er de chaque mois, en utilisant les barèmes par rôle ou le montant par défaut.
*/
@Builder.Default
@Column(name = "generation_automatique_activee", nullable = false)
private Boolean generationAutomatiqueActivee = false;
// ── Méthodes métier ────────────────────────────────────────────────────────
/**
* Vérifie si la date de référence pour les impayés est définie.
* Sans cette date, aucun calcul d'ancienneté des impayés n'est possible.
*/
public boolean isCalculAjourActive() {
return dateDebutCalculAjour != null;
}
}