-- ================================================================
-- CORRECTIONS POST-MIGRATION
-- Corrige les erreurs résiduelles de la migration principale
-- ================================================================

-- ================================================================
-- ÉTAPE 1: FINALISER LA TABLE USERS
-- ================================================================

-- Colonnes de profil supprimées car elles existent déjà dans la migration de base

-- Type user_role supprimé car non défini dans le schéma de base

-- ================================================================
-- ÉTAPE 2: FINALISER LA TABLE MESSAGES
-- ================================================================

-- Colonnes de messages supprimées car elles existent déjà dans la migration de base

-- Type message_status supprimé car non défini dans le schéma de base

-- ================================================================
-- ÉTAPE 3: FINALISER LA TABLE MESSAGE_REACTIONS
-- ================================================================

-- Colonne emoji supprimée car la table message_reactions utilise reaction_type

-- ================================================================
-- ÉTAPE 4: CRÉATION DES INDEX MANQUÉS
-- ================================================================

-- Index supprimés car les colonnes référencées n'existent pas dans le schéma de base

-- ================================================================
-- ÉTAPE 5: NETTOYAGE DES DÉPENDANCES PROBLÉMATIQUES
-- ================================================================

-- Supprimer le trigger problématique avant la fonction
DO $$
BEGIN
    IF EXISTS (SELECT 1 FROM information_schema.triggers 
               WHERE trigger_name = 'trigger_handle_mentions_secure') THEN
        DROP TRIGGER IF EXISTS trigger_handle_mentions_secure ON messages;
        RAISE NOTICE 'Trigger trigger_handle_mentions_secure supprimé';
    END IF;
    
    -- Maintenant supprimer la fonction
    DROP FUNCTION IF EXISTS handle_mentions_secure() CASCADE;
    RAISE NOTICE 'Fonction handle_mentions_secure supprimée';
EXCEPTION
    WHEN OTHERS THEN
        RAISE NOTICE 'Erreur lors du nettoyage: %', SQLERRM;
END $$;

-- ================================================================
-- ÉTAPE 6: MISE À JOUR DES DONNÉES EXISTANTES
-- ================================================================

-- Migration des données supprimée car les colonnes room n'existent pas dans le schéma de base

-- Migration des conversations supprimée car les colonnes et types n'existent pas dans le schéma de base

-- ================================================================
-- ÉTAPE 7: VÉRIFICATIONS FINALES
-- ================================================================

-- Vérifications finales simplifiées
DO $$
DECLARE
    orphan_messages INTEGER;
BEGIN
    -- Compter les messages sans conversation
    SELECT COUNT(*) INTO orphan_messages FROM messages WHERE conversation_id IS NULL;
    
    RAISE NOTICE 'Vérifications finales:';
    RAISE NOTICE '- Messages orphelins: %', orphan_messages;
    
    IF orphan_messages > 0 THEN
        RAISE WARNING 'Il reste % messages sans conversation_id', orphan_messages;
    END IF;
END $$;

-- Actualiser les statistiques
ANALYZE users;
ANALYZE messages;
ANALYZE conversations;
ANALYZE message_reactions; 