feat: WebSocket temps réel + Finance Workflow + corrections

- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics)
  * Backend: KafkaEventProducer, KafkaEventConsumer
  * Mobile: WebSocketService (reconnection, heartbeat, typed events)
  * DashboardBloc: Auto-refresh depuis WebSocket events

- Finance Workflow: approbations + budgets (backend + mobile)
  * Backend: entities, services, resources, migrations Flyway V6
  * Mobile: features finance_workflow complète avec BLoC

- Corrections DI: interfaces IRepository partout
  * IProfileRepository, IOrganizationRepository, IMembreRepository
  * GetIt configuré avec @injectable

- Spec-Kit: constitution + templates mis à jour
  * .specify/memory/constitution.md enrichie
  * Templates agent, plan, spec, tasks, checklist

- Nettoyage: fichiers temporaires supprimés

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 02:12:17 +00:00
parent bbc409de9d
commit e8ad874015
635 changed files with 58160 additions and 20674 deletions

View File

@@ -0,0 +1,87 @@
-- =============================================================================
-- Script de réparation Flyway — UnionFlow (mode dev)
-- =============================================================================
-- Exécuter UNE SEULE FOIS sur la base PostgreSQL "unionflow" AVANT de
-- relancer le serveur.
--
-- Contexte :
-- Hibernate (mode "update") avait créé certaines tables avant que Flyway
-- ne prenne le relais. Résultat : la table types_reference existe mais
-- manque la colonne "valeur_systeme" qu'attend V3.0.
-- flyway_schema_history s'arrête à la version 2.10.
--
-- Solution :
-- 1. Ajouter les colonnes manquantes (ajoutées par V3.x mais absentes
-- car Hibernate avait créé les tables avant).
-- 2. Marquer V3.0 → V3.6 comme "déjà appliquées" (success=true) dans
-- flyway_schema_history, afin que Flyway ne les reexécute pas.
-- 3. Flyway n'exécutera alors que V3.7 (seed des membres de test).
-- =============================================================================
BEGIN;
-- ─────────────────────────────────────────────────────────────────────────────
-- 1. Ajouter les colonnes manquantes dues au mode Hibernate "update"
-- ─────────────────────────────────────────────────────────────────────────────
-- V3.0 a besoin de cette colonne dans types_reference
ALTER TABLE types_reference
ADD COLUMN IF NOT EXISTS valeur_systeme BOOLEAN NOT NULL DEFAULT FALSE;
-- V3.5 peut avoir ajouté des colonnes d'adresse dans organisations
-- (ajout sécurisé — sans erreur si déjà présentes)
ALTER TABLE organisations ADD COLUMN IF NOT EXISTS adresse VARCHAR(255);
ALTER TABLE organisations ADD COLUMN IF NOT EXISTS ville VARCHAR(100);
ALTER TABLE organisations ADD COLUMN IF NOT EXISTS code_postal VARCHAR(20);
ALTER TABLE organisations ADD COLUMN IF NOT EXISTS pays VARCHAR(100);
ALTER TABLE organisations ADD COLUMN IF NOT EXISTS region VARCHAR(100);
-- ─────────────────────────────────────────────────────────────────────────────
-- 2. Marquer V3.0 à V3.6 comme appliquées dans flyway_schema_history
-- ─────────────────────────────────────────────────────────────────────────────
DO $$
DECLARE
max_rank INT;
BEGIN
SELECT COALESCE(MAX(installed_rank), 0) INTO max_rank FROM flyway_schema_history;
INSERT INTO flyway_schema_history
(installed_rank, version, description, type, script, checksum,
installed_by, installed_on, execution_time, success)
VALUES
(max_rank + 1, '3.0', 'Optimisation Structure Donnees', 'SQL',
'V3.0__Optimisation_Structure_Donnees.sql', 0, current_user, NOW(), 0, true),
(max_rank + 2, '3.1', 'Add Module Disponible FK', 'SQL',
'V3.1__Add_Module_Disponible_FK.sql', 0, current_user, NOW(), 0, true),
(max_rank + 3, '3.2', 'Seed Types Reference', 'SQL',
'V3.2__Seed_Types_Reference.sql', 0, current_user, NOW(), 0, true),
(max_rank + 4, '3.3', 'Optimisation Index Performance', 'SQL',
'V3.3__Optimisation_Index_Performance.sql', 0, current_user, NOW(), 0, true),
(max_rank + 5, '3.4', 'LCB FT Anti Blanchiment', 'SQL',
'V3.4__LCB_FT_Anti_Blanchiment.sql', 0, current_user, NOW(), 0, true),
(max_rank + 6, '3.5', 'Add Organisation Address Fields', 'SQL',
'V3.5__Add_Organisation_Address_Fields.sql', 0, current_user, NOW(), 0, true),
(max_rank + 7, '3.6', 'Create Test Organisations', 'SQL',
'V3.6__Create_Test_Organisations.sql', 0, current_user, NOW(), 0, true)
ON CONFLICT (version) DO NOTHING;
END $$;
COMMIT;
-- ─────────────────────────────────────────────────────────────────────────────
-- 3. Vérification finale
-- ─────────────────────────────────────────────────────────────────────────────
SELECT version, description, success, installed_on
FROM flyway_schema_history
ORDER BY installed_rank;
-- Vous devriez voir : ..., 2.10, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
-- V3.7 sera appliquée par Flyway au prochain démarrage du serveur.