#!/usr/bin/env python
"""
FC岐阜イベント用のエントリーデータ作成スクリプト
既存のチームをFC岐阜イベントにエントリーして、ゼッケン番号表示を可能にする
"""

import os
import sys
import django
from datetime import datetime

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
    django.setup()
    
    from rog.models import NewEvent2, Entry, Team, NewCategory, CustomUser
    
    print("=== FC岐阜イベント用エントリーデータ作成 ===")
    
    try:
        # FC岐阜イベントを取得
        fc_gifu_event = NewEvent2.objects.filter(event_name__icontains='FC岐阜').first()
        if not fc_gifu_event:
            print("❌ FC岐阜イベントが見つかりません")
            sys.exit(1)
        
        print(f"✅ FC岐阜イベント確認: {fc_gifu_event.event_name} (ID: {fc_gifu_event.id})")
        
        # カテゴリを取得または作成
        category, created = NewCategory.objects.get_or_create(
            category_name="一般",
            defaults={'category_number': 1}
        )
        if created:
            print(f"✅ カテゴリ作成: {category.category_name}")
        else:
            print(f"✅ 既存カテゴリ使用: {category.category_name}")
        
        # 既存のチームを取得
        teams = Team.objects.all()[:10]  # 最初の10チームを使用
        print(f"✅ 対象チーム数: {teams.count()}件")
        
        # エントリーを作成
        created_entries = 0
        zekken_number = 1
        
        for team in teams:
            # 既にエントリーが存在するかチェック
            existing_entry = Entry.objects.filter(
                team=team,
                event=fc_gifu_event
            ).first()
            
            if not existing_entry:
                # エントリーを作成
                entry = Entry.objects.create(
                    team=team,
                    event=fc_gifu_event,
                    category=category,
                    date=fc_gifu_event.start_datetime,
                    owner=team.owner,
                    zekken_number=zekken_number,
                    zekken_label=f"FC岐阜-{zekken_number:03d}",
                    is_active=True,
                    hasParticipated=False,
                    hasGoaled=False
                )
                print(f"  ✅ エントリー作成: {team.team_name} -> ゼッケン{zekken_number}")
                created_entries += 1
                zekken_number += 1
            else:
                print(f"  ⏭️  既存エントリー: {team.team_name}")
        
        print(f"\n=== 作成完了 ===")
        print(f"新規エントリー数: {created_entries}件")
        
        # 確認
        fc_entries = Entry.objects.filter(event=fc_gifu_event)
        print(f"FC岐阜イベントの総エントリー数: {fc_entries.count()}件")
        
        print("\n=== ゼッケン番号一覧 ===")
        for entry in fc_entries.order_by('zekken_number')[:5]:
            print(f"ゼッケン{entry.zekken_number}: {entry.team.team_name}")
        
        if fc_entries.count() > 5:
            print(f"... 他 {fc_entries.count() - 5}件")
        
    except Exception as e:
        print(f"❌ エラーが発生しました: {e}")
        import traceback
        traceback.print_exc()
