<?php

namespace App\Http\Controllers\Front;

use App\Http\Controllers\Controller;
use App\Models\EncuestaNps;
use App\Rules\ReCaptcha;
use Illuminate\Http\Request;

class EncuestaNpsController extends Controller
{
    public function index(Request $request)
    {
        $ids = $request->get('reg', []);
        return EncuestaNps::where('estado', true)
            ->whereNotIn('id', $ids)
            ->habilitado()
            ->inRandomOrder()
            ->first();
    }

    public function store(Request $request)
    {
        $request->validate([
            'pregunta_id' => 'required|numeric',
            'calificacion' => 'required|numeric|min:0',
            'recaptcha_token' => [
                'required',
                new ReCaptcha
            ]
        ]);

        $pregunta_id = $request->pregunta_id;
        $calificacion = $request->calificacion;


        $result = EncuestaNps::find($pregunta_id);

        if ($calificacion <= 6) {
            //?Detractor
            $toUpdate = [
                'detractors' => ($result->detractors || 0) + 1
            ];
        } else  if ($calificacion <= 8) {
            //?Passive
            $toUpdate = [
                'passives' => ($result->passives || 0) + 1
            ];
        } else {
            //?Promoters
            $toUpdate = [
                'promoters' => ($result->promoters || 0) + 1
            ];
        }
        $result->fill($toUpdate)->save();
    }
}
