import asyncio import subprocess from app.multi_tenant.criar_tenant import tenant_create from app.database.session import sessionmanager from app.config import URL_BD async def main(nome: str, email: str, password: str, cpf_cnpj: str): # Inicializar o gerenciador de sessão sessionmanager.init(URL_BD) cliente = None try: print(f"Iniciando a configuração de um novo Cliente '{nome}'...") cliente = await tenant_create(nome=nome, email=email, password=password, cpf_cnpj=cpf_cnpj) print(f"Cliente '{nome}' criado com sucesso!") except Exception as e: print(f"Erro ao criar o tenant: {e}") finally: await sessionmanager.close() try: print("Iniciando Migrações Alembic das Tabelas do Cliente") default_tenant = subprocess.run(["alembic", "-x", f"tenant={cliente}", "upgrade", "head"], check=True, capture_output=True, text=True) print("Migração Alembic das Tabelas Modelo dos Inquilinos finalizado com sucesso.") print(default_tenant.stdout) except subprocess.CalledProcessError as e: print("Erro durante Migrações Alembic.") print("Erro na Migração Alembic:") print("Saída padrão (stdout):", e.stdout) print("Erro padrão (stderr):", e.stderr) print("Código de saída:", e.returncode) raise if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description="Criar novo tenant") parser.add_argument("--nome", required=True, help="Nome do Cliente") parser.add_argument("--email", required=True, help="Email do usuário inicial") parser.add_argument("--password", required=True, help="Senha do usuário inicial") parser.add_argument("--doc", required=True, help="CPF ou CNPJ") args = parser.parse_args() asyncio.run(main(nome=args.nome, email=args.email, password=args.password, cpf_cnpj=args.doc,))