#!/usr/bin/env python3
"""
Test script to verify Excel to JSON conversion
"""

import requests
import json
import time

# Configuration
BASE_URL = "http://127.0.0.1:5000"
USERNAME = "sisapiuser"
PASSWORD = "M1n4#tr3e@12345"

def test_excel_json():
    """Test the Excel to JSON conversion"""
    
    print("📊 Testing Excel to JSON Conversion")
    print("=" * 40)
    
    # Test 1: Login
    print("\n1. Testing Login...")
    login_url = f"{BASE_URL}/api/login"
    login_data = {
        "username": USERNAME,
        "password": PASSWORD
    }
    
    try:
        response = requests.post(login_url, json=login_data, timeout=10)
        print(f"Status Code: {response.status_code}")
        print(f"Response: {response.text}")
        
        if response.status_code == 200:
            data = response.json()
            token = data['access_token']
            print(f"✅ Login successful!")
            print(f"   User: {data['user']['username']}")
        else:
            print(f"❌ Login failed: {response.status_code}")
            return
    except Exception as e:
        print(f"❌ Login error: {e}")
        return
    
    # Test 2: Test Excel to JSON conversion
    print("\n2. Testing Excel to JSON conversion...")
    excel_url = f"{BASE_URL}/api/download-excel"
    headers = {"Authorization": f"Bearer {token}"}
    
    try:
        response = requests.get(excel_url, headers=headers, timeout=30)
        print(f"Status Code: {response.status_code}")
        
        if response.status_code == 200:
            data = response.json()
            print(f"✅ Excel to JSON conversion successful!")
            print(f"   Filename: {data.get('filename', 'N/A')}")
            print(f"   Total rows: {data.get('total_rows', 0)}")
            print(f"   Extracted columns: {data.get('extracted_columns', [])}")
            if data.get('missing_columns'):
                print(f"   Missing columns: {data.get('missing_columns', [])}")
            
            # Show first few rows
            if data.get('data'):
                print(f"   First row sample: {data['data'][0]}")
                if len(data['data']) > 1:
                    print(f"   Second row sample: {data['data'][1]}")
        else:
            print(f"❌ Excel conversion failed: {response.status_code}")
            print(f"   Response: {response.text}")
    except Exception as e:
        print(f"❌ Excel conversion error: {e}")
    
    print("\n" + "=" * 40)
    print("🎉 Excel to JSON testing completed!")

if __name__ == "__main__":
    test_excel_json()
