import os
import pg8000.dbapi as pg
import pandas as pd
import sys

# Redirect stdout to a file
sys.stdout = open('task_analysis.txt', 'w', encoding='utf-8')

def load_env():
    env_vars = {}
    try:
        with open('.env', 'r', encoding='utf-8') as f:
            for line in f:
                line = line.strip()
                if not line or line.startswith('#'):
                    continue
                if '=' in line:
                    k, v = line.split('=', 1)
                    env_vars[k.strip()] = v.strip()
    except Exception:
        pass
    return env_vars

env = load_env()
HOST = env.get("LIC_PG_HOST", "172.24.240.1")
PORT = int(env.get("LIC_PG_PORT", "5432"))
USER = env.get("LIC_PG_USER", "postgres")
PASSWORD = env.get("LIC_PG_PASSWORD", "")
DATABASE = env.get("LIC_PG_DATABASE", "licensing_risks")

print(f"Connecting to DB...")
try:
    conn = pg.connect(host=HOST, port=PORT, user=USER, password=PASSWORD, database=DATABASE)
    cursor = conn.cursor()
    
    print("\n--- Regions ---")
    cursor.execute("SELECT id, name FROM regions")
    for r in cursor.fetchall():
        print(f"{r[1]}: {r[0]}")
        
    print("\n--- Current Counts ---")
    cursor.execute("SELECT COUNT(*) FROM themes")
    print(f"Themes: {cursor.fetchone()[0]}")
    
    try:
        cursor.execute("SELECT COUNT(*) FROM region_theme_permits")
        print(f"Region Theme Permits: {cursor.fetchone()[0]}")
    except: pass
    
    try:
        cursor.execute("SELECT COUNT(*) FROM permit_theme_rules")
        print(f"Permit Theme Rules: {cursor.fetchone()[0]}")
    except: pass

    conn.close()

except Exception as e:
    print(f"DB Error: {e}")

print("\n--- Excel Structure ---")
try:
    # Read header at row 1
    df = pd.read_excel('主题-事项绑定.xlsx', header=1)
    print("Columns:", df.columns.tolist())
    # Identify key columns
    print("\nSample Data:")
    print(df.iloc[:3].to_string())
except Exception as e:
    print(f"Excel Error: {e}")
