#!/usr/bin/env python3
"""
自動スタート機能テストツール
大垣2509の宮だみー（ゼッケン9999）でチェックイン→自動スタート機能をテスト
"""

import requests
import json
import time

def test_auto_start_checkin():
    """自動スタート機能のテスト"""
    
    print("🚀 自動スタート機能テスト開始")
    print("=" * 60)
    
    # テストデータ（大垣2509の宮だみー）
    test_data = {
        "event_code": "大垣2509",
        "team_name": "宮だみー",
        "cp_number": "1",  # 最初のチェックポイント
        "image": "data:image/jpeg;base64,auto_start_test",
        "buy_flag": False
    }
    
    print(f"📊 テストデータ:")
    print(f"  イベント: {test_data['event_code']}")
    print(f"  チーム: {test_data['team_name']}")
    print(f"  チェックポイント: {test_data['cp_number']}")
    
    # チェックインAPIを実行
    url = "http://localhost:8100/api/checkin_from_rogapp"
    
    print(f"\n🎯 チェックインAPI実行:")
    print(f"  URL: {url}")
    print(f"  Method: POST")
    
    try:
        response = requests.post(url, json=test_data, timeout=10)
        
        print(f"\n📥 レスポンス:")
        print(f"  ステータス: HTTP {response.status_code}")
        
        # レスポンス内容を整形して表示
        try:
            response_data = response.json()
            print(f"  内容: {json.dumps(response_data, ensure_ascii=False, indent=2)}")
            
            # 成功判定
            if response.status_code == 200 and response_data.get('status') == 'OK':
                print(f"\n✅ 自動スタート機能テスト成功！")
                return True
            else:
                print(f"\n❌ 自動スタート機能テスト失敗")
                return False
                
        except json.JSONDecodeError:
            print(f"  内容: {response.text}")
            return False
            
    except Exception as e:
        print(f"\n❌ APIリクエストエラー: {e}")
        return False

def check_database_status():
    """データベースの状況確認"""
    print(f"\n📊 データベース確認:")
    print(f"  以下のSQLを実行して確認してください:")
    print(f"")
    print(f"  -- 宮だみーのエントリー状況確認")
    print(f"  SELECT ")
    print(f"      en.id, en.zekken_number, t.team_name, ")
    print(f"      en.is_in_rog, en.rogaining_counted, en.start_time")
    print(f"  FROM rog_entry en")
    print(f"  JOIN rog_team t ON en.team_id = t.id")
    print(f"  JOIN rog_newevent2 e ON en.event_id = e.id")
    print(f"  WHERE en.zekken_number = 9999 AND e.event_code = 'ogaki2509';")
    print(f"")
    print(f"  -- 宮だみーのGpsLogエントリー確認")
    print(f"  SELECT * FROM rog_gpslog ")
    print(f"  WHERE zekken_number = 9999 AND event_code = '大垣2509'")
    print(f"  ORDER BY serial_number;")

def main():
    """メイン処理"""
    print("🔧 自動スタート機能テストツール")
    print("対象: 大垣2509 - 宮だみー（ゼッケン9999）")
    print("=" * 60)
    
    # テスト実行
    success = test_auto_start_checkin()
    
    # データベース確認方法を表示
    check_database_status()
    
    # 結果サマリー
    print(f"\n📋 テスト結果サマリー:")
    print(f"  自動スタート機能: {'✅ 成功' if success else '❌ 失敗'}")
    
    if success:
        print(f"\n🎉 自動スタート機能が正常に動作しています！")
        print(f"   これで、スマホアプリユーザーがスタート処理を忘れても、")
        print(f"   最初のチェックイン時に自動的にスタートされます。")
    else:
        print(f"\n⚠️  自動スタート機能に問題があります。")
        print(f"   ログを確認して問題を調査してください。")

if __name__ == "__main__":
    main()
