<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use App\Models\Pergunta;
use Illuminate\Support\Facades\Request as RequestFacade;

class AssedioController extends Controller
{
    public function store(Request $request)
    {
        // Validação
        $rules = [];

        foreach ($request->all() as $key => $value) {
            if (str_starts_with($key, 'pergunta')) {
                $rules[$key] = 'required|integer|between:0,5';
            }
        }

        $request->validate($rules);

        $user = Auth::user();

        if ($user->modulo2 == 1) {
            return redirect()->route('modulos');
        }

        $perguntas = Pergunta::where('tema', 'assedio') // <-- talvez aqui o tema correto deva ser 'assedio', confirme isso
            ->where('escolaridade', $user->escolaridade)
            ->get();

        $respostas = [];

        $index = 1;
        foreach ($perguntas as $pergunta) {
            $campo = 'pergunta' . $index;
            $valor = $request->input($campo);
            if ($valor !== null) {
                $respostasFormatadas[] = "{$pergunta->principio},{$pergunta->severidade},{$valor},{$pergunta->nivel}";
            }
            $index++;
        }

        DB::table('assedio')->insert([
            'ass_ip'        => $request->ip(),
            'setor'         => $user->setor,
            'escolaridade'  => $user->escolaridade,
            'respostas'     => json_encode($respostasFormatadas),
            'ass_data'      => now()->toDateString(),
        ]);

        // Atualizar o campo modulo2 para 1
        $user->modulo2 = 1;
        $user->save();

        // Log na tabela logs_questionarios
        DB::table('logs_questionarios')->insert([
            'ip' => RequestFacade::ip(),
            'usuario' => $user->email ?? 'desconhecido',
            'acao' => 'Concluiu o módulo Assédio',
            'data_hora' => now(),
            'created_at' => now(),
            'updated_at' => now(),
        ]);

        return redirect()->route('modulos');
    }

    public function index()
    {
        $escolaridade = Auth::user()->escolaridade;

        // Busca perguntas do tema "assedio" com a escolaridade do usuário
        $perguntas = Pergunta::where('tema', 'assedio')
            ->where('escolaridade', $escolaridade)
            ->pluck('pergunta')
            ->toArray();

        return view('perguntas.assedio', compact('perguntas'));
    }
}
