<?php namespace App\Libs\Composers\CF;

use JobOffer;

class CfVacancyDetailComposer
{
    use \App\Libs\Composers\SidebarComposerTrait;

    public function compose($view)
    {
        $data = $view->getData();
        $page = $data['object'];
        $parameters = $data['parameters'];
        $slug = last($parameters);

        $templateData = \CfDefaultTemplateCfg::with(array(
            'slides' => function ($q) {
                $q->full()->with('image')->orderBy("website_objects.position", "asc");
            }
        ))->where('entry_id', $page->id)->first();

        $vacancy = JobOffer::full()
            ->with(array('document', 'office'))
            ->where("slug", $slug)->first();

        if (!$vacancy) {
            abort(404);
        }

        if ($vacancy->status != 'published') {
            $user = \Auth::guard('admin')->user();
            if (!$user) {
                abort(404);
            }
        }

        $metaData = new \stdClass();

        $metaData->meta_title = cut_string(strip_tags($vacancy->title), 100);
        $metaData->meta_description = cut_string(strip_tags($vacancy->description), 200);
        $metaData->meta_keywords = null;

        $this->composeSidebar($view, \CfDefaultTemplateCfg::query());

        $view->with(array(
            'vacancy' => $vacancy,
            'metaData' => $metaData
        ));
    }
}
