#!/usr/bin/env python
"""
チーム・エントリーデータ完全リセット＆再移行スクリプト
既存のTeam/Entryデータをクリアして、old_rogdbから完全に移行し直す
"""

import os
import sys
import django

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
    django.setup()
    
    from rog.models import Team, Entry, Member
    from django.db import transaction
    import subprocess
    
    print("=== チーム・エントリーデータ完全リセット＆再移行 ===")
    
    try:
        with transaction.atomic():
            print("1. 既存データをクリア中...")
            
            # 関連データを順番にクリア
            entry_count = Entry.objects.count()
            member_count = Member.objects.count()
            team_count = Team.objects.count()
            
            print(f"  削除対象: Entry({entry_count}件), Member({member_count}件), Team({team_count}件)")
            
            Entry.objects.all().delete()
            Member.objects.all().delete()
            Team.objects.all().delete()
            
            print("  ✅ 既存データクリア完了")
            
        print("\\n2. チームデータ移行を実行中...")
        result = subprocess.run([
            'python', 'migrate_rog_team_enhanced.py'
        ], capture_output=True, text=True)
        
        if result.returncode == 0:
            print("  ✅ チーム移行完了")
        else:
            print(f"  ❌ チーム移行エラー: {result.stderr}")
            
        print("\\n3. エントリーデータ移行を実行中...")
        result = subprocess.run([
            'python', 'migrate_rog_entry_enhanced.py'
        ], capture_output=True, text=True)
        
        if result.returncode == 0:
            print("  ✅ エントリー移行完了")
        else:
            print(f"  ❌ エントリー移行エラー: {result.stderr}")
            
        print("\\n4. 移行結果確認...")
        from rog.models import NewEvent2
        
        team_count = Team.objects.count()
        entry_count = Entry.objects.count()
        
        print(f"  Team: {team_count}件")
        print(f"  Entry: {entry_count}件")
        
        # FC岐阜イベントのエントリー確認
        fc_event = NewEvent2.objects.filter(event_name__icontains='FC岐阜').first()
        if fc_event:
            fc_entries = Entry.objects.filter(event=fc_event)
            print(f"  FC岐阜イベントエントリー: {fc_entries.count()}件")
            
            if fc_entries.exists():
                print("  ✅ ゼッケン番号表示問題が解決されました！")
                for entry in fc_entries[:3]:
                    print(f"    ゼッケン{entry.zekken_number}: {entry.team.team_name}")
            else:
                print("  ⚠️  FC岐阜にエントリーがありません")
        
    except Exception as e:
        print(f"❌ エラーが発生しました: {e}")
        import traceback
        traceback.print_exc()
