from __future__ import annotations from fastapi import APIRouter, HTTPException, status from app.schemas.tenant_admin import NovoInquilinoRequest, NovoInquilinoResponse from app.multi_tenant.onboarding.novo_inquilino_service import ( criar_novo_inquilino_service, NovoInquilinoResult, NovoInquilinoError, ) router = APIRouter(prefix="/admin/tenants", tags=["Admin - Tenants"]) @router.post("", status_code=status.HTTP_201_CREATED, response_model=NovoInquilinoResponse) async def criar_novo_inquilino(payload: NovoInquilinoRequest) -> NovoInquilinoResponse: try: print("try") result: NovoInquilinoResult = await criar_novo_inquilino_service( nome=payload.nome, email=payload.email, password=payload.password, cpf_cnpj=payload.cpf_cnpj, # já vem sanitizado/validado ) return NovoInquilinoResponse( tenant=result.tenant, status=result.status, alembic_stdout=result.alembic_stdout, # campos opcionais; preencha se o seu serviço retornar schema_name=None, ) except NovoInquilinoError as e: print("except NovoInquilinoError as e") raise HTTPException(status_code=500, detail=str(e)) # except Exception as e: # print("except NovoInquilinoError as e") # raise HTTPException(status_code=500, detail=f"Erro inesperado: {e}")