from create_admin import create_admin
from create_test_users import create_test_users
from functions.database import get_db_connection, Usuario
from functions.rbac import Role

def init_system():
    print("=== Inicializando Sistema ===")
    
    # Criar admin
    print("\nCriando usuário admin...")
    create_admin()
    
    # Criar usuários de teste
    print("\nCriando usuários de teste...")
    create_test_users()
    
    # Verificar configuração
    print("\n=== Verificando Configuração ===")
    session = get_db_connection()
    try:
        # Verificar admin
        admin = session.query(Usuario).filter_by(username='admin').first()
        if admin:
            print("Admin: OK")
            print(f"OTP configurado: {'Sim' if admin.otp_secret else 'Não'}")
        else:
            print("Admin: FALHOU")
        
        # Verificar usuários de teste
        test_users = ['aligner', 'tester', 'deployer']
        for username in test_users:
            user = session.query(Usuario).filter_by(username=username).first()
            if user:
                print(f"{username}: OK")
                print(f"OTP configurado: {'Sim' if user.otp_secret else 'Não'}")
            else:
                print(f"{username}: FALHOU")
        
        print("\n=== Instruções ===")
        print("1. Use o aplicativo autenticador para configurar o OTP de cada usuário")
        print("2. Faça login com cada usuário para testar")
        print("3. Altere a senha no primeiro login")
        print("\nCredenciais:")
        print("Admin:")
        print("  Usuário: admin")
        print("  Senha: admin123")
        print("\nUsuários de teste:")
        print("  Usuário: aligner, tester, deployer")
        print("  Senha: Test123!@#")
        
    except Exception as e:
        print(f"Erro ao verificar configuração: {str(e)}")
        session.rollback()
    finally:
        session.close()

if __name__ == "__main__":
    init_system() 