<?php

declare(strict_types=1);

/*
 * This file is part of alox bundle for Contao.
 *
 * (c) Benjamin Roth
 *
 * @license commercial
 */

namespace vossmedien\AloxBundle\Controller\Frontend\Module;

use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
use Contao\CoreBundle\ServiceAnnotation\FrontendModule;
use Contao\ModuleModel;
use Contao\PageModel;
use Contao\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use vossmedien\AloxBundle\API\Zvoove;

/**
 * @FrontendModule(JobSearchModuleController::TYPE, category="miscellaneous")
 */
class JobSearchModuleController extends AbstractFrontendModuleController
{
    public const TYPE = 'alox_jobsearch';

    /**
     * @var Zvoove
     */
    protected $api;

    public function __construct(Zvoove $api)
    {
        $this->api = $api;
    }


    protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response
    {
        $limit = null;
        $offset = 0;

        $strFormId = 'joblist-form';

        $filterVertragsarten = $this->api->getKatalogByRelationName('StelleVertragsart','ChildEntity');
        $filterAbteilung = $this->api->getKatalogByRelationName('StelleAbteilung','Abteilung');


        // Populate template vars
        if ($filterVertragsarten !== null && $filterVertragsarten->TotalItems > 0)
        {
            $template->filterVertragsarten = $filterVertragsarten;
        }

        if ($filterAbteilung !== null && $filterAbteilung->TotalItems > 0)
        {
            $template->filterAbteilung = $filterAbteilung;
        }

        $template->formSubmit = $strFormId;

        // Submit action if jumpTo is defined
        if ($model->jumpTo && ($jumpTo = PageModel::findByPk($model->jumpTo)) !== null)
        {
            $template->formAction = $jumpTo->getFrontendUrl();
        }


        // Add scripts
        $GLOBALS['TL_BODY']['tomselect'] = Template::generateScriptTag('bundles/vossmedienalox/lib/tomselect/js/tom-select.base.js',false,null);
        $GLOBALS['TL_CSS']['tomselect'] = 'bundles/vossmedienalox/lib/tomselect/css/tom-select.min.css';

        return $template->getResponse();
    }

}