# views.py
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from apps.notes.models import Nota
from apps.notes.forms import NotaForm
from apps.dashboard.utils import get_user_info

@login_required
def lista_notas(request):
    user_info = get_user_info(request.user.id)
    notas = Nota.objects.filter(usuario=request.user)
    context = {
        'notas': notas,
        'user_info': user_info,
    }
    return render(request, 'notas/lista_notas.html', context)

@login_required
def criar_nota(request):
    user_info = get_user_info(request.user.id)
    if request.method == 'POST':
        form = NotaForm(request.POST)
        if form.is_valid():
            nota = form.save(commit=False)
            nota.usuario = request.user
            nota.save()
            return redirect('lista_notas')
    else:
        form = NotaForm()
    
    context = {
        'form': form,
        'user_info': user_info,
    }
    return render(request, 'notas/nota_form.html', context)

@login_required
def editar_nota(request, nota_id):
    user_info = get_user_info(request.user.id)
    nota = get_object_or_404(Nota, id=nota_id, usuario=request.user)
    if request.method == 'POST':
        form = NotaForm(request.POST, instance=nota)
        if form.is_valid():
            form.save()
            return redirect('lista_notas')
    else:
        form = NotaForm(instance=nota)
    
    context = {
        'form': form,
        'user_info': user_info,
    }
    return render(request, 'notas/nota_form.html', context)

@login_required
def excluir_nota(request, nota_id):
    nota = get_object_or_404(Nota, id=nota_id, usuario=request.user)
    if request.method == 'POST':
        nota.delete()
        return redirect('lista_notas')
    return redirect('lista_notas')

