"""Inspect the actual database schema from the running containers."""
import psycopg2
import json

def inspect():
    conn = psycopg2.connect(
        host="172.18.0.2", port=5432,
        dbname="mtgdata", user="mtgonline", password="mtgonline_pass"
    )
    cur = conn.cursor()
    
    # Get actual mtg_cards columns
    cur.execute("""
        SELECT column_name, data_type, column_default
        FROM information_schema.columns 
        WHERE table_name = 'mtg_cards'
        ORDER BY ordinal_position
    """)
    cards_cols = cur.fetchall()
    print("=== mtg_cards columns ===")
    for row in cards_cols:
        print(f"  {row[0]}: {row[1]} (default: {row[2]})")
    
    # Get actual mtg_sets columns
    cur.execute("""
        SELECT column_name, data_type, column_default
        FROM information_schema.columns 
        WHERE table_name = 'mtg_sets'
        ORDER BY ordinal_position
    """)
    sets_cols = cur.fetchall()
    print("\n=== mtg_sets columns ===")
    for row in sets_cols:
        print(f"  {row[0]}: {row[1]} (default: {row[2]})")
    
    # Check counts
    cur.execute("SELECT COUNT(*) FROM mtg_cards")
    print(f"\nmtg_cards count: {cur.fetchone()[0]}")
    cur.execute("SELECT COUNT(*) FROM mtg_sets")
    print(f"mtg_sets count: {cur.fetchone()[0]}")
    
    # Sample card
    print("\n=== Sample card (first row) ===")
    cur.execute("SELECT * FROM mtg_cards LIMIT 1")
    col_names = [d[0] for d in cur.description]
    row = cur.fetchone()
    for c, v in zip(col_names, row):
        print(f"  {c}: {v}")
    
    # Sample set
    print("\n=== Sample set (first row) ===")
    cur.execute("SELECT * FROM mtg_sets LIMIT 1")
    col_names = [d[0] for d in cur.description]
    row = cur.fetchone()
    for c, v in zip(col_names, row):
        print(f"  {c}: {v}")
    
    # Distinct rarities
    cur.execute("SELECT DISTINCT rarity FROM mtg_cards ORDER BY rarity")
    print(f"\nDistinct rarities: {[r[0] for r in cur.fetchall()]}")
    
    # Distinct layouts
    cur.execute("SELECT DISTINCT layout FROM mtg_cards ORDER BY layout")
    print(f"Distinct layouts: {[r[0] for r in cur.fetchall()]}")
    
    cur.close()
    conn.close()

if __name__ == "__main__":
    inspect()
