#!/usr/bin/env python3
"""
初始化数据库，创建默认管理员账号
"""

from sqlalchemy.orm import Session
from app.models.database import engine, Base, SessionLocal
from app.models.models import User
from app.services.user import UserService


def init_db():
    """初始化数据库"""
    # 创建所有表
    print("创建数据库表...")
    Base.metadata.create_all(bind=engine)
    print("数据库表创建完成")
    
    # 创建默认管理员账号
    print("\n创建默认管理员账号...")
    db = SessionLocal()
    
    try:
        # 检查是否已存在管理员账号
        admin_user = db.query(User).filter(User.username == "admin").first()
        
        if not admin_user:
            # 创建默认管理员账号
            admin_user = User(
                id="user-admin",
                username="admin",
                email="admin@example.com",
                password_hash=UserService.get_password_hash("admin123"),
                role="admin",
                status="active"
            )
            db.add(admin_user)
            db.commit()
            db.refresh(admin_user)
            print("✅ 默认管理员账号创建成功")
            print(f"用户名: admin")
            print(f"密码: admin123")
        else:
            print("⚠️  管理员账号已存在")
            
    finally:
        db.close()


if __name__ == "__main__":
    init_db()
