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

use JobOffer;

class CfVacanciesComposer
{
    use \App\Libs\Composers\SidebarComposerTrait,
        \App\Libs\Composers\BarComposerTrait,
        \App\Libs\Composers\CF\CfRelatedComposerTrait;

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

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


        $vacancies = JobOffer::full()
            ->with(array('document', 'office'))
            ->where("status", "published")
            ->orderBy('position', 'asc')->get();

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

        $view->with(array(
            'vacancies' => $vacancies,
            'slides' => $templateData->slides
        ));
    }
}
