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>
This commit is contained in:
dahoud
2026-03-16 05:15:17 +00:00
parent d8e3f23ec4
commit 347d89cc02
22 changed files with 3668 additions and 3129 deletions

View File

@@ -0,0 +1,219 @@
-- ============================================================================
-- V2: Ajout des colonnes BaseEntity manquantes
-- ============================================================================
-- Auteur: Lions Dev
-- Date: 2026-03-16
-- Description: Ajoute les colonnes cree_par et modifie_par dans toutes les
-- tables qui ne les ont pas encore.
-- Ces colonnes font partie de BaseEntity et sont requises par
-- Hibernate pour le bon fonctionnement de l'audit.
-- ============================================================================
-- Pattern: Pour chaque table sans cree_par/modifie_par, ajouter:
-- ALTER TABLE nom_table ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
-- ALTER TABLE nom_table ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
-- Tables de base
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE ayants_droit ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE ayants_droit ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE agrements_professionnels ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE agrements_professionnels ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE alertes_lcb_ft ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE alertes_lcb_ft ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE approver_actions ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE approver_actions ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE audit_logs ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE audit_logs ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE budget_lines ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE budget_lines ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE budgets ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE budgets ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE campagnes_agricoles ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE campagnes_agricoles ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE campagnes_collecte ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE campagnes_collecte ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE campagnes_vote ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE campagnes_vote ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE candidats ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE candidats ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE compte_comptable ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE compte_comptable ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE comptes_epargne ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE comptes_epargne ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE comptes_wave ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE comptes_wave ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE configuration ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE configuration ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE configuration_wave ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE configuration_wave ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE contributions_collecte ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE contributions_collecte ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE cotisations ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE cotisations ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE demande_adhesion ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE demande_adhesion ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE demandes_aide ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE demandes_aide ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE demandes_credit ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE demandes_credit ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE document ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE document ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE dons_religieux ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE dons_religieux ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE echeances_credit ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE echeances_credit ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE echelons_organigramme ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE echelons_organigramme ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE ecriture_comptable ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE ecriture_comptable ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE evenements ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE evenements ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE favori ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE favori ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE formule_abonnement ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE formule_abonnement ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE garanties_demande ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE garanties_demande ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE inscriptions_evenement ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE inscriptions_evenement ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE intention_paiement ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE intention_paiement ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE journal_comptable ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE journal_comptable ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE ligne_ecriture ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE ligne_ecriture ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE membre_organisation ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE membre_organisation ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE membre_role ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE membre_role ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE membre_suivi ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE membre_suivi ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE module_disponible ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE module_disponible ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE modules_organisation_actifs ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE modules_organisation_actifs ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE notifications ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE notifications ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE paiements ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE paiements ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE paiements_objets ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE paiements_objets ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE parametres_cotisation_organisation ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE parametres_cotisation_organisation ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE parametres_lcb_ft ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE parametres_lcb_ft ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE permission ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE permission ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE pieces_jointes ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE pieces_jointes ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE projets_ong ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE projets_ong ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE role_permission ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE role_permission ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE souscription_organisation ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE souscription_organisation ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE suggestion ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE suggestion ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE suggestion_vote ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE suggestion_vote ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE system_alerts ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE system_alerts ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE template_notification ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE template_notification ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE ticket ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE ticket ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE tontines ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE tontines ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE tours_tontine ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE tours_tontine ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE transaction_approvals ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE transaction_approvals ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE transaction_wave ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE transaction_wave ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE transactions_epargne ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE transactions_epargne ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE types_reference ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE types_reference ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE validation_etape_demande ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE validation_etape_demande ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE webhooks_wave ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE webhooks_wave ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
ALTER TABLE workflow_validation_config ADD COLUMN IF NOT EXISTS cree_par VARCHAR(255);
ALTER TABLE workflow_validation_config ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
-- Message de confirmation
DO $$
BEGIN
RAISE NOTICE '✅ Colonnes BaseEntity ajoutées à toutes les tables';
END $$;

View File

@@ -0,0 +1,92 @@
-- ============================================================================
-- V3: Correction des colonnes métier manquantes
-- ============================================================================
-- Auteur: Lions Dev
-- Date: 2026-03-16
-- Description: Ajoute les colonnes métier manquantes dans les tables
-- adresses et alert_configuration
-- ============================================================================
-- Table adresses - colonnes manquantes
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS adresse VARCHAR(500);
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS complement_adresse VARCHAR(200);
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS principale BOOLEAN DEFAULT false;
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS libelle VARCHAR(100);
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS notes VARCHAR(500);
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS organisation_id UUID;
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS membre_id UUID;
ALTER TABLE adresses ADD COLUMN IF NOT EXISTS evenement_id UUID;
-- Ajouter NOT NULL après coup (si la colonne existe déjà, ça échouera silencieusement)
DO $$
BEGIN
BEGIN
ALTER TABLE adresses ALTER COLUMN principale SET NOT NULL;
EXCEPTION WHEN OTHERS THEN
NULL;
END;
END $$;
-- Index pour adresses (s'ils n'existent pas déjà)
CREATE INDEX IF NOT EXISTS idx_adresse_organisation ON adresses(organisation_id);
CREATE INDEX IF NOT EXISTS idx_adresse_membre ON adresses(membre_id);
CREATE INDEX IF NOT EXISTS idx_adresse_evenement ON adresses(evenement_id);
-- Foreign keys pour adresses (avec gestion des doublons)
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_adresse_organisation') THEN
ALTER TABLE adresses ADD CONSTRAINT fk_adresse_organisation
FOREIGN KEY (organisation_id) REFERENCES organisations(id) ON DELETE CASCADE;
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_adresse_membre') THEN
ALTER TABLE adresses ADD CONSTRAINT fk_adresse_membre
FOREIGN KEY (membre_id) REFERENCES utilisateurs(id) ON DELETE CASCADE;
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'fk_adresse_evenement') THEN
ALTER TABLE adresses ADD CONSTRAINT fk_adresse_evenement
FOREIGN KEY (evenement_id) REFERENCES evenements(id) ON DELETE CASCADE;
END IF;
END $$;
-- Table alert_configuration - colonnes manquantes
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS cpu_high_alert_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS cpu_threshold_percent INTEGER DEFAULT 80;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS cpu_duration_minutes INTEGER DEFAULT 5;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS memory_low_alert_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS memory_threshold_percent INTEGER DEFAULT 85;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS critical_error_alert_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS error_alert_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS connection_failure_alert_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS connection_failure_threshold INTEGER DEFAULT 100;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS connection_failure_window_minutes INTEGER DEFAULT 5;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS email_notifications_enabled BOOLEAN DEFAULT true;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS push_notifications_enabled BOOLEAN DEFAULT false;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS sms_notifications_enabled BOOLEAN DEFAULT false;
ALTER TABLE alert_configuration ADD COLUMN IF NOT EXISTS alert_email_recipients VARCHAR(1000) DEFAULT 'admin@unionflow.test';
-- Ajouter NOT NULL après coup
DO $$
BEGIN
BEGIN ALTER TABLE alert_configuration ALTER COLUMN cpu_high_alert_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN cpu_threshold_percent SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN cpu_duration_minutes SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN memory_low_alert_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN memory_threshold_percent SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN critical_error_alert_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN error_alert_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN connection_failure_alert_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN connection_failure_threshold SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN connection_failure_window_minutes SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN email_notifications_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN push_notifications_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
BEGIN ALTER TABLE alert_configuration ALTER COLUMN sms_notifications_enabled SET NOT NULL; EXCEPTION WHEN OTHERS THEN NULL; END;
END $$;
-- Message de confirmation
DO $$
BEGIN
RAISE NOTICE '✅ Colonnes métier manquantes ajoutées';
END $$;

View File

@@ -0,0 +1,54 @@
-- ============================================================================
-- V4: Correction de la table system_logs
-- ============================================================================
-- Auteur: Lions Dev
-- Date: 2026-03-16
-- Description: Corrige les noms de colonnes et ajoute les colonnes manquantes
-- dans system_logs pour correspondre à l'entité JPA SystemLog
-- ============================================================================
-- 1. Renommer les colonnes avec des noms incorrects
ALTER TABLE system_logs RENAME COLUMN niveau TO level;
ALTER TABLE system_logs RENAME COLUMN stacktrace TO details;
-- 2. Modifier utilisateur_id: UUID → VARCHAR(255) et renommer user_id
-- D'abord supprimer la colonne UUID, puis ajouter VARCHAR
ALTER TABLE system_logs DROP COLUMN IF EXISTS utilisateur_id;
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS user_id VARCHAR(255);
-- 3. Ajouter les colonnes manquantes
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS timestamp TIMESTAMP;
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS session_id VARCHAR(255);
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS endpoint VARCHAR(500);
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS http_status_code INTEGER;
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS date_modification TIMESTAMP;
ALTER TABLE system_logs ADD COLUMN IF NOT EXISTS modifie_par VARCHAR(255);
-- 4. Ajuster les types de colonnes existantes
ALTER TABLE system_logs ALTER COLUMN message TYPE VARCHAR(1000);
ALTER TABLE system_logs ALTER COLUMN ip_address TYPE VARCHAR(45);
-- 5. Définir timestamp NOT NULL après coup (si données existantes, timestamp = date_creation)
UPDATE system_logs SET timestamp = date_creation WHERE timestamp IS NULL;
DO $$
BEGIN
BEGIN
ALTER TABLE system_logs ALTER COLUMN timestamp SET NOT NULL;
EXCEPTION WHEN OTHERS THEN
NULL;
END;
END $$;
-- 6. Recréer les index avec les bons noms de colonnes
DROP INDEX IF EXISTS idx_system_logs_niveau;
CREATE INDEX IF NOT EXISTS idx_system_log_level ON system_logs(level);
CREATE INDEX IF NOT EXISTS idx_system_log_timestamp ON system_logs(timestamp);
CREATE INDEX IF NOT EXISTS idx_system_log_source ON system_logs(source);
CREATE INDEX IF NOT EXISTS idx_system_log_user_id ON system_logs(user_id);
-- Message de confirmation
DO $$
BEGIN
RAISE NOTICE '✅ Table system_logs corrigée (colonnes renommées et ajoutées)';
END $$;

View File

@@ -0,0 +1,22 @@
-- ============================================================================
-- V5: Nettoyage des colonnes obsolètes dans alert_configuration
-- ============================================================================
-- Auteur: Lions Dev
-- Date: 2026-03-16
-- Description: Supprime les colonnes de V1 qui ne correspondent pas à
-- l'entité JPA AlertConfiguration (colonnes obsolètes)
-- ============================================================================
-- Supprimer les colonnes obsolètes de la version V1 d'alert_configuration
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS type_alerte;
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS seuil_critique;
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS seuil_warning;
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS notification_email;
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS notification_sms;
ALTER TABLE alert_configuration DROP COLUMN IF EXISTS destinataires;
-- Message de confirmation
DO $$
BEGIN
RAISE NOTICE '✅ Colonnes obsolètes supprimées de alert_configuration';
END $$;