#!/usr/bin/env python
"""
手順1: 大垣3イベントを検索して大垣テストイベントを作成
"""
import os
import sys
import django

# Django設定
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()

from rog.models import *
from django.utils import timezone
from datetime import datetime, timedelta
from django.contrib.gis.geos import Point

def create_test_event():
    print("=== 手順1: 大垣3イベントを複製して大垣テストイベントを作成 ===")
    
    # 大垣3イベントを検索
    ogaki3 = NewEvent2.objects.filter(event_name__contains="大垣３").first()
    if ogaki3:
        print(f"大垣3イベント見つかりました: {ogaki3.event_name} (ID: {ogaki3.id})")
        
        # 大垣テストイベントを作成（既存を削除してから）
        NewEvent2.objects.filter(event_name="大垣テスト").delete()
        print("既存の大垣テストイベントを削除しました")
        
        test_event = NewEvent2.objects.create(
            event_name="大垣テスト",
            event_description="大垣3のテスト用複製イベント",
            public=True,
            hour_5=True,
            class_general=True,
            class_family=True,
            start_datetime=timezone.now() + timedelta(hours=1),
            end_datetime=timezone.now() + timedelta(hours=8),
            event_code="OGAKI_TEST",
            start_time=(timezone.now() + timedelta(hours=1)).strftime("%H:%M"),
            event_day=timezone.now().strftime("%Y-%m-%d"),
            venue_address="岐阜県大垣市（テスト用）"
        )
        print(f"「大垣テスト」イベントを作成しました (ID: {test_event.id})")

        # 大垣3のLocationデータをコピー
        locations = Location.objects.filter(event=ogaki3)
        print(f"大垣3には{locations.count()}個のLocationがあります")
        
        location_mapping = {}
        for loc in locations:
            new_loc = Location.objects.create(
                event=test_event,
                point_no=loc.point_no,
                point_name=loc.point_name,
                point_name_en=loc.point_name_en,
                content=loc.content,
                content_en=loc.content_en,
                note=loc.note,
                note_en=loc.note_en,
                location=loc.location,  # PostGISのPointFieldをコピー
                access_way=loc.access_way,
                point=loc.point if hasattr(loc, 'point') else 100,
                map_url=loc.map_url,
                qr_code=loc.qr_code,
                image=loc.image
            )
            location_mapping[loc.id] = new_loc.id
            print(f"Location {loc.point_no}: {loc.point_name} -> {new_loc.id}")
        
        print(f"Location複製完了: {len(location_mapping)}個")
        return test_event, location_mapping
    else:
        print("大垣3イベントが見つかりません")
        # 利用可能なイベントを表示
        events = NewEvent2.objects.all()[:10]
        print("利用可能なイベント:")
        for event in events:
            print(f"  - {event.event_name} (ID: {event.id})")
        return None, {}

if __name__ == "__main__":
    test_event, location_mapping = create_test_event()
    if test_event:
        print(f"\n✅ 手順1完了: {test_event.event_name} (ID: {test_event.id}) を作成しました")
    else:
        print("\n❌ 手順1失敗: 大垣3イベントが見つかりませんでした")
