-- ============================================================================
-- SCRIPT DE RÉINITIALISATION MESSAGER - PRODUCTION
-- ============================================================================
-- Ce script réinitialise complètement la base de données Messager
-- pour une mise en production propre.
--
-- ATTENTION : Ce script supprime TOUTES les données !
-- À exécuter uniquement sur un environnement de production vierge.
--
-- Date: 2025-12-11
-- ============================================================================

-- Désactiver les contraintes de clés étrangères temporairement

-- ============================================================================
-- 1. NETTOYAGE DES TABLES MÉTIER (données de production)
-- ============================================================================

-- Suppression des logs d'exécution des collecteurs
TRUNCATE TABLE collector_executions;

-- Suppression des logs de traitement
TRUNCATE TABLE processing_logs;

-- Suppression des exécutions de messages
TRUNCATE TABLE message_executions;

-- Suppression des messages
TRUNCATE TABLE messages;

-- Tables intentionnellement conservées :
-- - domains : configuration des webhooks, tokens API et paramètres essentiels
-- - users / password_reset_tokens : comptes utilisateurs et authentification

-- ============================================================================
-- 2. NETTOYAGE DES TABLES SYSTÈME LARAVEL
-- ============================================================================

-- Jobs en attente/échoués
TRUNCATE TABLE jobs;
TRUNCATE TABLE failed_jobs;

-- Cache Laravel
TRUNCATE TABLE cache;
TRUNCATE TABLE cache_locks;

-- Tables intentionnellement conservées :
-- - sessions : évite l'invalidation des sessions actives et les erreurs CSRF 419

-- ============================================================================
-- 3. RÉINITIALISATION DES AUTO-INCREMENT
-- ============================================================================

ALTER TABLE collector_executions AUTO_INCREMENT = 1;
ALTER TABLE processing_logs AUTO_INCREMENT = 1;
ALTER TABLE message_executions AUTO_INCREMENT = 1;
ALTER TABLE messages AUTO_INCREMENT = 1;
ALTER TABLE jobs AUTO_INCREMENT = 1;
ALTER TABLE failed_jobs AUTO_INCREMENT = 1;

-- Réactiver les contraintes de clés étrangères

-- ============================================================================
-- 4. VÉRIFICATION
-- ============================================================================

-- Afficher le nombre d'enregistrements dans chaque table
SELECT 'domains' AS table_name, COUNT(*) AS count FROM domains
UNION ALL
SELECT 'messages', COUNT(*) FROM messages
UNION ALL
SELECT 'message_executions', COUNT(*) FROM message_executions
UNION ALL
SELECT 'processing_logs', COUNT(*) FROM processing_logs
UNION ALL
SELECT 'collector_executions', COUNT(*) FROM collector_executions
UNION ALL
SELECT 'jobs', COUNT(*) FROM jobs
UNION ALL
SELECT 'failed_jobs', COUNT(*) FROM failed_jobs;

-- ============================================================================
-- FIN DU SCRIPT
-- ============================================================================
