# apps/participants/views.py
from django.views.generic import ListView, CreateView, View, TemplateView
from django.urls import reverse_lazy
from django.shortcuts import redirect
from .models import Participant
from .forms import ParticipantForm
from .services import calculate_scores
from django.views.generic import TemplateView
from .services import calculate_scores_details

class ParticipantCreateView(CreateView):
    model = Participant
    form_class = ParticipantForm
    template_name = "participants/form.html"
    success_url = reverse_lazy("participant_new")  # vuelve a sí misma

class CalculateView(View):
    def post(self, request, *args, **kwargs):
        calculate_scores()
        return redirect("results")

class ResultsView(ListView):
    model = Participant
    template_name = "participants/results.html"
    context_object_name = "participants"

class ResultsView(TemplateView):
    template_name = "participants/results.html"

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        # recalcula en memoria y entrega detalles
        ctx["rankings"] = calculate_scores_details()
        return ctx
