#!/usr/bin/env python
"""
old_rogdb から新しいデータベースへのエントリーデータ移行スクリプト
rog_entry テーブルのデータを NewEvent2 システムに移行
"""

import os
import sys
import django
from datetime import datetime

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
    django.setup()
    
    from django.db import connection
    from rog.models import NewEvent2, Entry, Team, NewCategory, CustomUser
    
    print("=== old_rogdb エントリーデータ移行 ===")
    
    try:
        # old_rogdb の rog_entry データを確認
        print("old_rogdb の rog_entry データを確認中...")
        
        with connection.cursor() as cursor:
            # rog_entry テーブルの構造とデータを確認
            cursor.execute("""
                SELECT column_name, data_type 
                FROM information_schema.columns 
                WHERE table_name = 'rog_entry' 
                ORDER BY ordinal_position;
            """)
            columns = cursor.fetchall()
            
            print("✅ rog_entry テーブル構造:")
            for col_name, data_type in columns:
                print(f"  - {col_name}: {data_type}")
            
            # データ件数確認
            cursor.execute("SELECT COUNT(*) FROM rog_entry;")
            entry_count = cursor.fetchone()[0]
            print(f"✅ rog_entry データ件数: {entry_count}件")
            
            # サンプルデータ確認
            cursor.execute("""
                SELECT id, team_id, event_id, category_id, date, 
                       zekken_number, zekken_label, is_active
                FROM rog_entry 
                LIMIT 5;
            """)
            sample_data = cursor.fetchall()
            
            print("\\n✅ サンプルデータ:")
            for row in sample_data:
                print(f"  ID:{row[0]}, Team:{row[1]}, Event:{row[2]}, Category:{row[3]}, Zekken:{row[5]}")
            
            # イベント情報の確認
            cursor.execute("""
                SELECT e.id, e.event_name, COUNT(re.id) as entry_count
                FROM rog_newevent2 e
                LEFT JOIN rog_entry re ON e.id = re.event_id
                GROUP BY e.id, e.event_name
                HAVING COUNT(re.id) > 0
                ORDER BY entry_count DESC;
            """)
            event_data = cursor.fetchall()
            
            print("\\n✅ エントリーがあるイベント:")
            for event_id, event_name, count in event_data:
                print(f"  Event ID:{event_id} '{event_name}': {count}件")
                
            # FC岐阜イベントのエントリー確認
            cursor.execute("""
                SELECT re.id, re.zekken_number, re.zekken_label,
                       t.team_name, c.category_name
                FROM rog_entry re
                JOIN rog_newevent2 e ON re.event_id = e.id
                JOIN rog_team t ON re.team_id = t.id  
                JOIN rog_newcategory c ON re.category_id = c.id
                WHERE e.event_name LIKE '%FC岐阜%'
                ORDER BY re.zekken_number
                LIMIT 10;
            """)
            fc_entries = cursor.fetchall()
            
            print("\\n✅ FC岐阜イベントのエントリー（最初の10件）:")
            for entry_id, zekken, label, team_name, category in fc_entries:
                print(f"  ゼッケン{zekken}: {team_name} ({category})")
    
    except Exception as e:
        print(f"❌ エラーが発生しました: {e}")
        import traceback
        traceback.print_exc()
