<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Statistiky\Http\Controllers\Frontend;

use Carbon\Carbon;
use Seka\Portal\Modul\Statistiky\Http\View\ZaznamDatumFilterEnum;
use Seka\Portal\Modul\Statistiky\Entities\Zaznam\Enums\DruhSubjektuZaznamuEnum;

/**
 * Class PracoviskoController
 *
 * @package Seka\Portal\Modul\Statistiky\Http\Controllers\Frontend
 */
final class PracoviskoController extends FilterController
{
    /**
     * @param \Seka\Portal\Modul\Statistiky\Http\View\ZaznamDatumFilterEnum $dateFilter
     *
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     * @throws \Prettus\Repository\Exceptions\RepositoryException
     */
    protected function makeView(ZaznamDatumFilterEnum $dateFilter)
    {
        $pekId = auth()->user()->pracovisko->id;

        list($from, $to) = $this->getFromDate($dateFilter);
        $data = $this->getData($pekId, $from, $to, DruhSubjektuZaznamuEnum::PRACOVISKO());

        return view('Statistiky::frontend.pages.pracovisko.index')
            ->with([
                'PekZoznamPoctuKontrolPodlaStavuDataTableComposer' => $data['zoznamPoctuKontrolPodlaStavu'] ?? null,
                'PekZoznamPoctuKontrolPodlaDruhuAHodnoteniaDataTableComposer' => $data['zoznamPoctuKontrolPodlaDruhuAHodnotenia'] ?? null,
                'PekZoznamPoctuKontrolPodlaKategorieVozidlaDataTableComposer' => $data['zoznamPoctuKontrolPodlaKategorieVozidla'] ?? [
                        'stlpce' => [[]],
                        'pocty' => [],
                    ],
                'PekZoznamPoctuKontrolAObratuPodlaSubjektuFakturacieDataTableComposer' => $data['zoznamPoctuKontrolAObratuPodlaSubjektuFakturacie'] ?? null,
                'PekZoznamPoctuKontrolPodlaDruhuPalivaAEmisnehoSystemuVozidlaDataTableComposer' => $data['zoznamPoctuKontrolPodlaDruhuPalivaAEmisnehoSystemuVozidla'] ?? null,
                'datumDo' => $to->format('d.m.Y'),
                'datumOd' => $from->format('d.m.Y'),
                'datefilter' => $dateFilter,
                'filterFormActionRoute' => route('modul.statistiky.frontend.pracovisko.filter'),
            ]);
    }
}
