"""
创建管理员账号
"""
import sqlite3
from core.security import get_password_hash

# 连接数据库
conn = sqlite3.connect('qa_system.db')
cursor = conn.cursor()

# 管理员账号信息
admin_username = 'admin'
admin_email = 'admin@example.com'
admin_password = 'admin123'

print("="*60)
print("创建管理员账号")
print("="*60)

# 检查管理员是否已存在
cursor.execute("SELECT id, is_admin FROM users WHERE username = ?", (admin_username,))
existing = cursor.fetchone()

if existing:
    if existing[1]:  # 已经是管理员
        print(f"[OK] 管理员账号 '{admin_username}' 已存在")
    else:  # 存在但不是管理员，升级为管理员
        cursor.execute("UPDATE users SET is_admin = 1 WHERE username = ?", (admin_username,))
        conn.commit()
        print(f"[OK] 用户 '{admin_username}' 已升级为管理员")
else:
    # 创建新管理员
    hashed_password = get_password_hash(admin_password)
    cursor.execute(
        "INSERT INTO users (username, email, hashed_password, is_active, is_admin) VALUES (?, ?, ?, 1, 1)",
        (admin_username, admin_email, hashed_password)
    )
    conn.commit()
    print(f"[OK] 创建管理员账号成功")

print("\n管理员登录信息：")
print(f"  用户名: {admin_username}")
print(f"  密码: {admin_password}")
print(f"  邮箱: {admin_email}")

# 显示所有管理员
print("\n" + "="*60)
print("当前所有管理员：")
print("="*60)

cursor.execute("SELECT id, username, email FROM users WHERE is_admin = 1")
admins = cursor.fetchall()

for admin in admins:
    print(f"{admin[0]}. {admin[1]} ({admin[2]})")

conn.close()

print("\n" + "="*60)
print("管理员账号创建完成！")
print("="*60)
