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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user