<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Models\Log;
use App\Models\LogQuestionario;
use Illuminate\Support\Facades\Auth;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Models\Resultado;



class RelatorioController extends Controller
{
    public function index()
    {
        $modulos = [
            'estresse' => 'estresse',
            'assedio' => 'assedio',
            'deficiencia' => 'deficiencia',
            'acoes' => 'acoes',
            'sociofamiliares' => 'sociofamiliares'
        ];

        $dados = [];

        foreach ($modulos as $nome => $tabela) {
            $dados[$nome] = DB::table($tabela)
                ->select(
                    DB::raw("{$this->getDataColumn($tabela)} as data"),
                    'setor',
                    'escolaridade',
                    'respostas'
                )

                ->orderByDesc($this->getDataColumn($tabela))
                ->get()
                ->toArray();
        }

        return view('relatorios.relatorio', compact('dados'));
    }

    private function getDataColumn($tabela)
    {
        $mapa = [
            'estresse' => 'est_data',
            'assedio' => 'ass_data',
            'deficiencia' => 'def_data',
            'acoes' => 'aco_data',
            'sociofamiliares' => 'soc_data',
        ];

        return $mapa[$tabela] ?? 'data';
    }

    public function acessos()
    {
        $logs = Log::orderBy('data_hora', 'desc')->get();
        return view('relatorios.acessos', compact('logs'));
    }

    public function respostas()
    {
        $logsQuestionarios = LogQuestionario::orderBy('data_hora', 'desc')->get();
        return view('relatorios.respostas', compact('logsQuestionarios'));
    }

    public function gerarPDF()
    {
        $user = Auth::user();
        $modulos = [
            'estresse' => 'estresse',
            'assedio' => 'assedio',
            'deficiencia' => 'deficiencia',
            'acoes' => 'acoes',
            'sociofamiliares' => 'sociofamiliares'
        ];

        $dados = [];

        foreach ($modulos as $nome => $tabela) {
            $dados[$nome] = DB::table($tabela)
                ->select(
                    DB::raw("{$this->getDataColumn($tabela)} as data"),
                    'setor',
                    'escolaridade',
                    'respostas'
                )
                ->orderByDesc($this->getDataColumn($tabela))
                ->get()
                ->toArray();
        }

        $pdf = Pdf::loadView('relatorios.pdf', [
            'dados' => $dados,
            'modulos' => array_keys($modulos),
            'user' => $user
        ]);

        // Retorna como download direto
        return $pdf->download('relatorio_psicossocial.pdf');
    }
}
