<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class RelatorioController extends Controller
{
    public function statusSolicitacoes(){
        $dados = DB::table('protocolos')
        ->selectRaw("COUNT('status') AS qtde, status")
        ->groupBy('status')
        ->get();

        return $dados;
    }

    public function quantidadeSolicitacoesPorTipo(){
        $dados = DB::table('protocolos')
        ->selectRaw("COUNT('tipo') AS qtde, tipo")
        ->groupBy('tipo')
        ->get();

        return $dados;
    }

    public function dezBairrosMais(){
        $dados = DB::table('protocolos')
        ->selectRaw("COUNT('p.id') AS qtde, users_solicitantes.bairro")
        ->join('users', 'users.id', '=', 'protocolos.idUser')
        ->join('users_solicitantes', 'users_solicitantes.idUser', '=', 'users.id')
        ->groupBy('users_solicitantes.bairro')
        ->orderByDesc('qtde')
        ->limit(10)
        ->get();

        return $dados;
    }

    public function secretariasMaisDemandadas(){
        $dados = DB::table('protocolos')
        ->selectRaw("COUNT('protocolos.idSetor') AS qtde, setors.nome")
        ->join('setors', 'protocolos.idSetor', '=', 'setors.id')
        ->groupBy('protocolos.idSetor','setors.nome')
        ->get();

        return $dados;
    }

    public function relatorios(){
        $todosDados = [];
        $todosDados['statusSolicitacoes'] = $this->statusSolicitacoes();
        $todosDados['quantidadeSolicitacoesPorTipo'] = $this->quantidadeSolicitacoesPorTipo();
        $todosDados['dezBairrosMais'] = $this->dezBairrosMais();
        $todosDados['secretariasMaisDemandadas'] = $this->secretariasMaisDemandadas();

        return view('relatorios.graficos', compact('todosDados'));
    }
}
