import os
import requests
from dotenv import load_dotenv
import openai

# Load credentials
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY")

def test_openai():
    print("Testing OpenAI API Key...")
    try:
        client = openai.OpenAI(api_key=OPENAI_API_KEY)
        # Attempt to list models as a lightweight test
        models = client.models.list()
        print("? OpenAI API Key is VALID.")
    except Exception as e:
        print(f"? OpenAI API Error: {str(e)}")

def test_elevenlabs():
    print("\nTesting ElevenLabs API Key...")
    try:
        headers = {"xi-api-key": ELEVENLABS_API_KEY}
        response = requests.get("https://api.elevenlabs.io/v1/voices", headers=headers)
        
        if response.status_code == 200:
            data = response.json()
            voices = data.get("voices", [])
            print(f"? ElevenLabs API Key is VALID. Found {len(voices)} voices.")
        else:
            print(f"? ElevenLabs API Error: {response.status_code} - {response.text}")
            
    except Exception as e:
        print(f"? ElevenLabs API Request Error: {str(e)}")

if __name__ == "__main__":
    print("====================================")
    print("API KEY VALIDATION TOOL")
    print("====================================\n")
    if not OPENAI_API_KEY or not ELEVENLABS_API_KEY:
        print("??  Warning: One or both API keys are missing from the .env file!")
    
    test_openai()
    test_elevenlabs()