import sqlite3
import os

db_path = 'build/Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/components.db'

if os.path.exists(db_path):
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()
    
    # Получаем список всех таблиц
    cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
    tables = cursor.fetchall()
    print("=== ТАБЛИЦЫ В БАЗЕ ДАННЫХ ===")
    for table in tables:
        print(f"- {table[0]}")
    
    print("\n=== СТРУКТУРА ТАБЛИЦ ===")
    for table in tables:
        table_name = table[0]
        print(f"\n--- {table_name} ---")
        cursor.execute(f"PRAGMA table_info({table_name})")
        columns = cursor.fetchall()
        for col in columns:
            print(f"  {col[1]} ({col[2]}) - {'NOT NULL' if col[3] else 'NULL'}")
    
    # Проверяем индексы
    print("\n=== ИНДЕКСЫ ===")
    cursor.execute("SELECT name, sql FROM sqlite_master WHERE type='index'")
    indexes = cursor.fetchall()
    for idx in indexes:
        print(f"- {idx[0]}: {idx[1]}")
    
    # Проверяем внешние ключи
    print("\n=== ВНЕШНИЕ КЛЮЧИ ===")
    cursor.execute("PRAGMA foreign_key_list(components)")
    fk_components = cursor.fetchall()
    if fk_components:
        print("components:")
        for fk in fk_components:
            print(f"  {fk[3]} -> {fk[2]}.{fk[4]}")
    
    cursor.execute("PRAGMA foreign_key_list(component_properties)")
    fk_props = cursor.fetchall()
    if fk_props:
        print("component_properties:")
        for fk in fk_props:
            print(f"  {fk[3]} -> {fk[2]}.{fk[4]}")
    
    cursor.execute("PRAGMA foreign_key_list(component_variants)")
    fk_variants = cursor.fetchall()
    if fk_variants:
        print("component_variants:")
        for fk in fk_variants:
            print(f"  {fk[3]} -> {fk[2]}.{fk[4]}")
    
    cursor.execute("PRAGMA foreign_key_list(variant_properties)")
    fk_var_props = cursor.fetchall()
    if fk_var_props:
        print("variant_properties:")
        for fk in fk_var_props:
            print(f"  {fk[3]} -> {fk[2]}.{fk[4]}")
    
    conn.close()
else:
    print(f"Database file not found: {db_path}") 