feat: add flocage customization options to equipement configuration

This commit is contained in:
2026-07-07 21:54:14 +02:00
parent 5ee9be467b
commit 29f9dc3bc2
3 changed files with 93 additions and 2 deletions
@@ -33,6 +33,15 @@ public class Equipement {
private String couleursDisponibles;
@Column(name = "has_flocage_prenom", nullable = false)
private boolean hasFlocagePrenom = false;
@Column(name = "has_flocage_initiales", nullable = false)
private boolean hasFlocageInitiales = false;
@Column(name = "has_flocage_numero", nullable = false)
private boolean hasFlocageNumero = false;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "saison_id", nullable = false)
private Saison saison;
@@ -63,6 +72,15 @@ public class Equipement {
public String getCouleursDisponibles() { return couleursDisponibles; }
public void setCouleursDisponibles(String couleursDisponibles) { this.couleursDisponibles = couleursDisponibles; }
public boolean isHasFlocagePrenom() { return hasFlocagePrenom; }
public void setHasFlocagePrenom(boolean hasFlocagePrenom) { this.hasFlocagePrenom = hasFlocagePrenom; }
public boolean isHasFlocageInitiales() { return hasFlocageInitiales; }
public void setHasFlocageInitiales(boolean hasFlocageInitiales) { this.hasFlocageInitiales = hasFlocageInitiales; }
public boolean isHasFlocageNumero() { return hasFlocageNumero; }
public void setHasFlocageNumero(boolean hasFlocageNumero) { this.hasFlocageNumero = hasFlocageNumero; }
public Saison getSaison() { return saison; }
public void setSaison(Saison saison) { this.saison = saison; }
}
@@ -0,0 +1,31 @@
ALTER TABLE equipement ADD COLUMN has_flocage_prenom BOOLEAN DEFAULT FALSE NOT NULL;
ALTER TABLE equipement ADD COLUMN has_flocage_initiales BOOLEAN DEFAULT FALSE NOT NULL;
ALTER TABLE equipement ADD COLUMN has_flocage_numero BOOLEAN DEFAULT FALSE NOT NULL;
-- Activation automatique de l'option "numéro" pour les équipements ayant déjà des dotations avec un numéro
UPDATE equipement e
SET has_flocage_numero = TRUE
WHERE EXISTS (
SELECT 1 FROM dotation d WHERE d.equipement_id = e.id AND d.numero IS NOT NULL AND d.numero != ''
);
-- Activation automatique de l'option "prénom" (uniquement) pour les équipements ayant déjà des dotations avec un flocage
UPDATE equipement e
SET has_flocage_prenom = TRUE
WHERE EXISTS (
SELECT 1 FROM dotation d WHERE d.equipement_id = e.id AND d.flocage IS NOT NULL AND d.flocage != ''
);
UPDATE dotation
SET flocage = a.prenom
FROM licence l
JOIN adherent a ON l.adherent_id = a.id
WHERE dotation.licence_id = l.id
AND dotation.flocage IS NOT NULL
AND dotation.flocage != ''
AND EXISTS (
SELECT 1 FROM equipement e
WHERE e.id = dotation.equipement_id
AND e.has_flocage_prenom = TRUE
AND e.has_flocage_initiales = FALSE
);