-- =====================================================
-- CORRECTION BLOCAGE sync2/ - Colonne manquante
-- Date: 11 septembre 2025
-- Agent: 17 PM Auto + 16 PM Manuel  
-- Table: appointments
-- Issue: #3 - https://github.com/2dsS/ovhTesting/issues/3
-- =====================================================

-- Vérification préalable structure table
DESCRIBE appointments;

-- 1. Ajout colonne calendar_sync_status
-- Position: après la colonne 'status' existante
ALTER TABLE appointments 
ADD COLUMN calendar_sync_status ENUM('PENDING', 'SYNCED', 'FAILED') 
DEFAULT 'PENDING' 
AFTER status;

-- 2. Migration données existantes basée sur calendar_event_id
-- Si calendar_event_id existe et non vide = SYNCED
-- Sinon = PENDING (par défaut)
UPDATE appointments 
SET calendar_sync_status = CASE 
    WHEN calendar_event_id IS NOT NULL AND calendar_event_id != '' THEN 'SYNCED'
    ELSE 'PENDING'
END;

-- 3. Vérification post-correction - Distribution des statuts
SELECT 
    calendar_sync_status,
    COUNT(*) as count,
    ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM appointments), 2) as percentage
FROM appointments 
GROUP BY calendar_sync_status
ORDER BY count DESC;

-- 4. Test requête sync2/ qui causait erreur 1054
-- Cette requête doit maintenant fonctionner sans erreur
SELECT COUNT(*) as pending_sync_count
FROM appointments 
WHERE status = 'PENDING' OR calendar_sync_status = 'PENDING';

-- 5. Vérification structure finale
SHOW COLUMNS FROM appointments LIKE '%sync%';

-- 6. Test requête complexe sync2/ avec nouvelle colonne
SELECT 
    id,
    status,
    calendar_sync_status,
    calendar_event_id,
    start_datetime,
    end_datetime,
    first_name,
    last_name,
    email
FROM appointments 
WHERE calendar_sync_status IN ('PENDING', 'FAILED')
ORDER BY start_datetime DESC
LIMIT 10;

-- ✅ VALIDATION SUCCESS CRITERIA
-- - Pas d'erreur lors exécution ALTER TABLE
-- - Colonne calendar_sync_status visible dans DESCRIBE
-- - COUNT pending_sync_count retourne un nombre (pas erreur 1054)  
-- - sync2/ URL fonctionne sans erreur database

-- 🔄 ROLLBACK (si nécessaire)
-- ALTER TABLE appointments DROP COLUMN calendar_sync_status;

-- 📊 POST-CORRECTION ACTIONS
-- 1. Tester URL: https://testingovh.2ds.be/booking-system/sync2/
-- 2. Valider dashboard sans erreur 1054
-- 3. Débloquer Issues #4, #5, #6, #7
-- 4. Notification Agent 17 PM Auto + Agent 16 PM Manuel

-- =====================================================
-- 🤖 Agent 17 PM Auto - Script ready for execution
-- 👔 Agent 16 PM Manuel - Coordination post-correction  
-- ⏰ Execution priority: IMMEDIATE (P0 Critical)
-- =====================================================