Some checks failed
CI/CD Pipeline / pipeline (push) Failing after 3m22s
Suite à la récupération précédente (044ca4b) qui n'avait restauré que les fichiers SUPPRIMÉS, ce commit restaure les MODIFICATIONS d'entités/services qui étaient nécessaires pour que les fichiers restaurés compilent. Restaurés depuis a72ab54^ (=31330d9+ corrections) : - Entities : Organisation, FormuleAbonnement, AuditService, MembreOrganisation, SouscriptionOrganisation, etc. - Services : MigrerOrganisationsVersKeycloakService, ComptabilitePdfService, KycAmlService, AuditService.logKycRisqueEleve, etc. - Resources : PaiementUnifieResource, etc. Backend compile désormais (BUILD SUCCESS).
102 lines
2.8 KiB
Java
102 lines
2.8 KiB
Java
package dev.lions.unionflow.server.entity;
|
|
|
|
import dev.lions.unionflow.server.entity.listener.AuditEntityListener;
|
|
import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.EntityListeners;
|
|
import jakarta.persistence.GeneratedValue;
|
|
import jakarta.persistence.GenerationType;
|
|
import jakarta.persistence.Id;
|
|
import jakarta.persistence.MappedSuperclass;
|
|
import jakarta.persistence.PrePersist;
|
|
import jakarta.persistence.PreUpdate;
|
|
import jakarta.persistence.Version;
|
|
import java.time.LocalDateTime;
|
|
import java.util.UUID;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
|
|
/**
|
|
* Classe de base pour toutes les entités UnionFlow.
|
|
*
|
|
* <p>
|
|
* Étend PanacheEntityBase pour bénéficier du pattern Active Record et résoudre
|
|
* les warnings Hibernate.
|
|
* Fournit les champs communs d'audit et le versioning optimistic.
|
|
*
|
|
* @author UnionFlow Team
|
|
* @version 4.0
|
|
*/
|
|
@MappedSuperclass
|
|
@EntityListeners(AuditEntityListener.class)
|
|
@Data
|
|
@EqualsAndHashCode(callSuper = false)
|
|
public abstract class BaseEntity extends PanacheEntityBase {
|
|
|
|
/** Identifiant unique auto-généré. */
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.UUID)
|
|
@Column(name = "id", updatable = false, nullable = false)
|
|
private UUID id;
|
|
|
|
/**
|
|
* Date de création.
|
|
*/
|
|
@Column(name = "date_creation", nullable = false, updatable = false)
|
|
private LocalDateTime dateCreation;
|
|
|
|
/**
|
|
* Date de dernière modification.
|
|
*/
|
|
@Column(name = "date_modification")
|
|
private LocalDateTime dateModification;
|
|
|
|
/**
|
|
* Email de l'utilisateur ayant créé l'entité.
|
|
*/
|
|
@Column(name = "cree_par", length = 255)
|
|
private String creePar;
|
|
|
|
/**
|
|
* Email du dernier utilisateur ayant modifié l'entité.
|
|
*/
|
|
@Column(name = "modifie_par", length = 255)
|
|
private String modifiePar;
|
|
|
|
/** Version pour l'optimistic locking JPA. */
|
|
@Version
|
|
@Column(name = "version")
|
|
private Long version;
|
|
|
|
/**
|
|
* État actif/inactif pour le soft-delete.
|
|
*/
|
|
@Column(name = "actif", nullable = false)
|
|
private Boolean actif;
|
|
|
|
@PrePersist
|
|
protected void onCreate() {
|
|
if (this.dateCreation == null) {
|
|
this.dateCreation = LocalDateTime.now();
|
|
}
|
|
if (this.actif == null) {
|
|
this.actif = true;
|
|
}
|
|
}
|
|
|
|
@PreUpdate
|
|
protected void onUpdate() {
|
|
this.dateModification = LocalDateTime.now();
|
|
}
|
|
|
|
/**
|
|
* Marque l'entité comme modifiée par un utilisateur donné.
|
|
*
|
|
* @param utilisateur email de l'utilisateur
|
|
*/
|
|
public void marquerCommeModifie(String utilisateur) {
|
|
this.dateModification = LocalDateTime.now();
|
|
this.modifiePar = utilisateur;
|
|
}
|
|
}
|