<?php

namespace App\Http\Controllers;

use App\Models\CalificacionEncuesta;
use Illuminate\Http\Request;
use App\Models\Encuesta;
use App\Lib\RequestQueryBuilder\RequestQueryBuilder as QB;
use App\Lib\RequestQueryBuilder\AllowedFilter as F;

class EncuestaController extends Controller
{
    public function index(Request $request)
    {
        $encuestas = QB::make($request, Encuesta::query())
            ->allowedFilters(
                F::equals('id'),
                F::contains('nombre'),
                F::contains('email'),
                F::contains('cedula'),
            )
            ->allowedSorts(['id', 'nombre', 'email', 'cedula'])
            ->query()
            ->paginate();

        return $encuestas;
    }

    public function show(Encuesta $encuesta)
    {
        $calificaciones = CalificacionEncuesta::query()->get();

        return [
            'encuesta' => $encuesta,
            'calificaciones' => $calificaciones,
        ];
    }

    public function destroy(Encuesta $encuesta)
    {
        $encuesta->delete();

        return $encuesta;
    }
}
