from django.shortcuts import render

# Create your views here.




from django.shortcuts import render, redirect, get_object_or_404
from .forms import PacienteForm, ArchivoPacienteForm
from .models import Paciente
from .forms import NotaMedicaForm
from .models import NotaMedica
from django.contrib import messages
from .models import Paciente, Diente


def crear_paciente(request):
    if request.method == 'POST':
        form = PacienteForm(request.POST, request.FILES)
        if form.is_valid():
            paciente = form.save()
            return redirect('detalle_paciente', paciente_id=paciente.id)
    else:
        form = PacienteForm()
    return render(request, 'pacientes/crear_paciente.html', {'form': form})

def detalle_paciente(request, paciente_id):
    paciente = get_object_or_404(Paciente, id=paciente_id)
    archivos = paciente.archivos.all()
    notas = NotaMedica.objects.filter(paciente=paciente).order_by('-fecha')

    archivo_form = ArchivoPacienteForm()
    nota_form = NotaMedicaForm()

    if request.method == 'POST':
        if 'subir_archivo' in request.POST:
            archivo_form = ArchivoPacienteForm(request.POST, request.FILES)
            if archivo_form.is_valid():
                archivo = archivo_form.save(commit=False)
                archivo.paciente = paciente
                archivo.save()
                messages.success(request, "✅ Archivo subido correctamente.")
                return redirect('detalle_paciente', paciente_id=paciente.id)
            else:
                messages.error(request, "❌ Hubo un error al subir el archivo.")
        
        elif 'agregar_nota' in request.POST:
            nota_form = NotaMedicaForm(request.POST)
            if nota_form.is_valid():
                nota = nota_form.save(commit=False)
                nota.paciente = paciente
                nota.save()
                messages.success(request, "✅ Nota médica guardada correctamente.")
                return redirect('detalle_paciente', paciente_id=paciente.id)
            else:
                messages.error(request, "❌ Hubo un error al guardar la nota médica.")

    return render(request, 'pacientes/detalle_paciente.html', {
        'paciente': paciente,
        'archivos': archivos,
        'archivo_form': archivo_form,
        'notas': notas,
        'nota_form': nota_form,
    })



def lista_pacientes(request):
    query = request.GET.get('q')
    if query:
        pacientes = Paciente.objects.filter(
            nombre__icontains=query
       
        )
    else:
        pacientes = Paciente.objects.all()
    
    return render(request, 'pacientes/lista_pacientes.html', {
        'pacientes': pacientes,
        'query': query
    })

def odontograma_view(request, paciente_id):
    paciente = get_object_or_404(Paciente, id=paciente_id)
    dientes_sup = list(range(11, 19)) + list(range(21, 29))
    dientes_inf = list(range(31, 39)) + list(range(41, 49))
    return render(request, 'pacientes/odontograma.html', {
        'paciente': paciente,
        'dientes_sup': dientes_sup,
        'dientes_inf': dientes_inf,
    })
