<?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\Config;
use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
use Contao\CoreBundle\ServiceAnnotation\FrontendModule;
use Contao\Input;
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(JobReaderModuleController::TYPE, category="miscellaneous")
 */
class JobReaderModuleController extends AbstractFrontendModuleController
{
    public const TYPE = 'alox_jobreader';

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

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


    protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response
    {
        if ($request->get('id'))
        {
            $job = $this->api->getStelleById($request->get('id'));
        }

        // Populate template vars
        if ($job !== null)
        {
            $template->job = $job->getData();
        }

        // Back link if overview page is defined
        if ($model->overviewPage && ($overviewPage = PageModel::findByPk($model->overviewPage)) !== null)
        {
            $template->listUrl = $overviewPage->getFrontendUrl();
        }

        return $template->getResponse();
    }

}