Files
unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/entity/AlertConfiguration.java
dahoud 347d89cc02 feat(backend): consolidation finale Spec 001 LCB-FT + Flyway V1-V5
Migrations Flyway (consolidées) :
- V1 : Schéma complet (69 tables, 1322 lignes)
- V2 : Colonnes BaseEntity (cree_par, modifie_par)
- V3 : Colonnes métier manquantes (adresses, alert_configuration)
- V4 : Correction system_logs (renommage colonnes, ajout timestamp)
- V5 : Nettoyage alert_configuration (suppression colonnes obsolètes)
- Suppression V2-V6 obsolètes (fragmentés)

Entités LCB-FT :
- AlerteLcbFt : Alertes anti-blanchiment
- AlertConfiguration : Configuration alertes
- SystemAlert : Alertes système
- SystemLog : Logs techniques (DÉJÀ COMMITÉE avec super.onCreate fix)

Services LCB-FT (T015, T016) :
- AlerteLcbFtService + Resource : Dashboard alertes admin
- AlertMonitoringService : Surveillance transactions
- SystemLoggingService : Logs centralisés
- FileStorageService : Upload documents

Repositories :
- AlerteLcbFtRepository
- AlertConfigurationRepository
- SystemAlertRepository
- SystemLogRepository

Tests :
- GlobalExceptionMapperTest : 17 erreurs corrigées (toResponse())

Spec 001 : 27/27 tâches (100%)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 05:15:17 +00:00

114 lines
3.1 KiB
Java

package dev.lions.unionflow.server.entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
/**
* Entité singleton pour la configuration des alertes système.
* Une seule ligne en base de données.
*
* @author UnionFlow Team
* @version 1.0
* @since 2026-03-15
*/
@Entity
@Table(name = "alert_configuration")
@Getter
@Setter
public class AlertConfiguration extends BaseEntity {
/**
* Alerte CPU activée
*/
@Column(name = "cpu_high_alert_enabled", nullable = false)
private Boolean cpuHighAlertEnabled = true;
/**
* Seuil CPU en pourcentage (0-100)
*/
@Column(name = "cpu_threshold_percent", nullable = false)
private Integer cpuThresholdPercent = 80;
/**
* Durée en minutes avant déclenchement alerte CPU
*/
@Column(name = "cpu_duration_minutes", nullable = false)
private Integer cpuDurationMinutes = 5;
/**
* Alerte mémoire faible activée
*/
@Column(name = "memory_low_alert_enabled", nullable = false)
private Boolean memoryLowAlertEnabled = true;
/**
* Seuil mémoire en pourcentage (0-100)
*/
@Column(name = "memory_threshold_percent", nullable = false)
private Integer memoryThresholdPercent = 85;
/**
* Alerte erreur critique activée
*/
@Column(name = "critical_error_alert_enabled", nullable = false)
private Boolean criticalErrorAlertEnabled = true;
/**
* Alerte erreur activée
*/
@Column(name = "error_alert_enabled", nullable = false)
private Boolean errorAlertEnabled = true;
/**
* Alerte échec de connexion activée
*/
@Column(name = "connection_failure_alert_enabled", nullable = false)
private Boolean connectionFailureAlertEnabled = true;
/**
* Seuil d'échecs de connexion
*/
@Column(name = "connection_failure_threshold", nullable = false)
private Integer connectionFailureThreshold = 100;
/**
* Fenêtre temporelle en minutes pour les échecs de connexion
*/
@Column(name = "connection_failure_window_minutes", nullable = false)
private Integer connectionFailureWindowMinutes = 5;
/**
* Notifications par email activées
*/
@Column(name = "email_notifications_enabled", nullable = false)
private Boolean emailNotificationsEnabled = true;
/**
* Notifications push activées
*/
@Column(name = "push_notifications_enabled", nullable = false)
private Boolean pushNotificationsEnabled = false;
/**
* Notifications SMS activées
*/
@Column(name = "sms_notifications_enabled", nullable = false)
private Boolean smsNotificationsEnabled = false;
/**
* Liste des emails destinataires des alertes (séparés par virgule)
*/
@Column(name = "alert_email_recipients", length = 1000)
private String alertEmailRecipients = "admin@unionflow.test";
/**
* S'assurer qu'il n'y a qu'une seule configuration
*/
@PrePersist
@PreUpdate
protected void ensureSingleton() {
// La logique singleton sera gérée par le repository
}
}