#!/usr/bin/env python3
"""
Script de migration Django 3.2 → 5.1
Corrige automatiquement les problèmes de compatibilité
"""

import os
import sys
from pathlib import Path

def fix_models_file(file_path):
    """Supprime les méthodes __unicode__ dépréciées"""
    print(f"🔧 Correction de {file_path}...")
    
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # Supprimer les méthodes __unicode__
    lines = content.split('\n')
    new_lines = []
    skip_next = False
    
    for i, line in enumerate(lines):
        if 'def __unicode__(self):' in line:
            # Ignorer cette ligne et la suivante (return)
            skip_next = True
            continue
        if skip_next:
            skip_next = False
            continue
        new_lines.append(line)
    
    new_content = '\n'.join(new_lines)
    
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(new_content)
    
    print(f"✅ {file_path} corrigé")

def main():
    base_dir = Path(__file__).resolve().parent
    
    print("🚀 Début de la migration Django 3.2 → 5.1")
    print("=" * 50)
    
    # Fichiers à corriger
    files_to_fix = [
        base_dir / 'blog' / 'models.py',
        base_dir / 'core' / 'models.py',
    ]
    
    print("\n📝 Correction des fichiers models.py...")
    for file_path in files_to_fix:
        if file_path.exists():
            fix_models_file(file_path)
        else:
            print(f"⚠️  {file_path} introuvable")
    
    print("\n" + "=" * 50)
    print("✅ Migration terminée !")
    print("\n📋 Prochaines étapes :")
    print("1. Activez votre environnement virtuel")
    print("2. Installez les dépendances : pip install -r requirements.txt")
    print("3. Générez une nouvelle SECRET_KEY et mettez à jour .env")
    print("4. Testez les migrations : python manage.py makemigrations")
    print("5. Appliquez les migrations : python manage.py migrate")
    print("6. Lancez le serveur : python manage.py runserver")

if __name__ == '__main__':
    main()
