<?php

namespace App\Http\Controllers;

use App\Models\Evaluacion;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class EvaluacionController extends Controller
{
    public function index()
    {
        $evaluaciones = Evaluacion::with('tipo')
            ->withCount(['preguntas', 'submissions'])
            ->latest()
            ->get();

        return view('evaluacion.index', compact('evaluaciones'));
    }

    public function create()
    {
        return view('evaluacion.create');
    }

    public function store(Request $request)
    {
        // Manejado por Livewire EvaluacionBuilder
    }

    public function show(Evaluacion $evaluacion)
    {
        $evaluacion->load(['tipo', 'preguntas.tipo', 'preguntas.opciones', 'planteles', 'niveles']);

        return view('evaluacion.show', compact('evaluacion'));
    }

    public function edit(Evaluacion $evaluacion)
    {
        $evaluacion->load(['preguntas.opciones', 'planteles', 'niveles']);

        return view('evaluacion.create', compact('evaluacion'));
    }

    public function update(Request $request, Evaluacion $evaluacion)
    {
        // Manejado por Livewire EvaluacionBuilder
    }

    public function destroy(Evaluacion $evaluacion)
    {
        $evaluacion->delete();

        session()->flash('swal',[
            'icon'=>'success',
            'title'=>'Eliminado!',
            'text'=>'Se ha eliminado el registro correctamente'
        ]);

        return redirect()->route('evaluacion.index');
    }

    public function toggleStatus(Request $request, Evaluacion $evaluacion)
    {
        $request->validate(['status' => 'required|in:borrador,activa,cerrada']);
        $evaluacion->update(['status' => $request->status]);

        return back()->with('info', 'Estado actualizado.');
    }
}
