#!/usr/bin/env python3
import pymysql

conn = pymysql.connect(
    host="127.0.0.1",
    user="root",
    password="ra8raffi!",
    database="gazenergie",
    charset="utf8mb4",
)
cur = conn.cursor()

cur.execute("SELECT company_id FROM users WHERE username='administrator_gazenergie' LIMIT 1")
row = cur.fetchone()
if not row:
    raise SystemExit("admin user not found")
keep = row[0]
print("keep_company_id", keep)


def wipe(table):
    cur.execute(f"SELECT COUNT(*) FROM {table}")
    n = cur.fetchone()[0]
    cur.execute(f"DELETE FROM {table}")
    return n


stats = {}
for table in [
    "admin_audit_logs",
    "audit_log_entries",
    "activity_log",
    "login_events",
    "gas_reports",
    "module_forms",
    "module_state",
    "module_status",
    "module_admin_comments",
    "company_year_import_reserve",
    "feld_werte",
    "supplier_contacts",
]:
    try:
        stats[table] = wipe(table)
    except Exception as exc:
        stats[table] = f"ERR:{exc}"

cur.execute("SELECT COUNT(*) FROM company_module_access WHERE company_id <> %s", (keep,))
stats["company_module_access"] = cur.fetchone()[0]
cur.execute("DELETE FROM company_module_access WHERE company_id <> %s", (keep,))

cur.execute("SELECT COUNT(*) FROM users WHERE role='supplier'")
stats["supplier_users"] = cur.fetchone()[0]
cur.execute("DELETE FROM users WHERE role='supplier'")

cur.execute("SELECT COUNT(*) FROM companies WHERE id <> %s", (keep,))
stats["companies"] = cur.fetchone()[0]
cur.execute("DELETE FROM companies WHERE id <> %s", (keep,))

conn.commit()

for key, value in stats.items():
    print(key, value)

cur.execute("SELECT COUNT(*) FROM companies")
print("remaining_companies", cur.fetchone()[0])
cur.execute("SELECT username, role FROM users ORDER BY id")
print("remaining_users", cur.fetchall())
conn.close()
