from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.db import connection
from django.contrib import messages
from django.contrib.auth import get_user_model
from moradores.models import Morador

User = get_user_model()

@login_required
def dashboard_view(request):
    if not hasattr(request.user, 'tenant') or not request.user.tenant:
        messages.error(request, "Este usuário não está vinculado a nenhum condomínio.")
        return redirect('painel:dashboard')

    connection.set_schema(request.user.tenant.schema_name)

    # Recupera moradores + e-mail do user relacionado
    moradores = Morador.objects.select_related('user').all().order_by('identificacao_unidade')

    return render(request, 'painel/dashboard.html', {
        'moradores': moradores
    })


@login_required
def deletar_morador(request, morador_id):
    if not hasattr(request.user, 'tenant') or not request.user.tenant:
        messages.error(request, "Este usuário não está vinculado a nenhum condomínio.")
        return redirect('painel:dashboard')

    connection.set_schema(request.user.tenant.schema_name)

    try:
        morador = get_object_or_404(Morador.objects.select_related('user'), id=morador_id)
        nome = morador.nome_completo
        email = morador.user.email if morador.user else 'sem e-mail'
        usuario = morador.user

        morador.delete()
        if usuario:
            usuario.delete()

        messages.success(request, f"✅ Morador “{nome}” com e-mail {email} excluído com sucesso.")
    except Exception as e:
        messages.error(request, f"❌ Erro ao excluir morador: {e}")

    return redirect('painel:dashboard')
