#!/usr/bin/env python3
import json
import sys

def query_database():
    with open('/home/mnm/workspaces/totally-spies-cultshot/data/fandom_wiki/clean_database.json', 'r') as f:
        db = json.load(f)
    
    print("Totally Spies Fandom Database Query Tool")
    print("=" * 50)
    
    while True:
        print("\nCommands:")
        print("  chars - List all characters")
        print("  main  - Show main characters details")
        print("  villains - List villains")
        print("  gadgets - List gadgets")
        print("  locations - List locations")
        print("  find [name] - Search for specific entry")
        print("  quit  - Exit")
        
        cmd = input("\n> ").strip().lower()
        
        if cmd == 'quit':
            break
        elif cmd == 'chars':
            print("\nMain Characters:")
            for name in db['characters']:
                print(f"  - {name}")
            print("\nSupporting Characters (partial data):")
            for name in db.get('supporting_characters', {}):
                print(f"  - {name}")
        elif cmd == 'main':
            for name, data in db['characters'].items():
                print(f"\n{name}:")
                print(f"  Role: {data.get('role', 'N/A')}")
                print(f"  Hair: {data.get('hair_color', 'N/A')}")
                print(f"  Personality: {', '.join(data.get('personality', []))}")
        elif cmd == 'villains':
            print("\nVillains:")
            for name, data in db['villains'].items():
                print(f"  - {name} (Season {data.get('season', '?')})")
        elif cmd == 'gadgets':
            print("\nGadgets:")
            for name, data in db['gadgets'].items():
                print(f"  - {name}: {data.get('description', 'N/A')[:60]}...")
        elif cmd == 'locations':
            print("\nLocations:")
            for name, data in db['locations'].items():
                print(f"  - {name}")
        elif cmd.startswith('find '):
            term = cmd[5:]
            found = False
            for category in ['characters', 'supporting_characters', 'villains', 'gadgets', 'locations']:
                for name, data in db.get(category, {}).items():
                    if term.lower() in name.lower():
                        print(f"\n{name} ({category}):")
                        print(json.dumps(data, indent=2))
                        found = True
            if not found:
                print(f"No results for '{term}'")
        else:
            print("Unknown command")

if __name__ == '__main__':
    query_database()
