<?php namespace App\Libs\Composers;

use Client;

class NotableClientsComposer
{
    use SidebarComposerTrait;

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

        $corporateClients = Client::full()
            ->with('logo', 'caseStudy')
            ->with(array(
                'caseStudy' => function ($query) {
                    $query->full();
                }
            ))
            ->where("type", "corporate")
            ->where("status", "published")
            ->orderBy('website_objects.position', 'asc')->get();

        $publicClients = Client::full()->with('logo', 'caseStudy')
            ->where("type", "public")
            ->where("status", "published")
            ->with(array(
                'caseStudy' => function ($query) {
                    $query->full();
                }
            ))
            ->orderBy('website_objects.position', 'asc')->get();

        $this->composeSidebar($view, \NotableTemplateConfiguration::query());
        $this->composeSidebar($view, \NotableTemplateConfiguration::query(), 'corporateWidgets',
            'corporateSidebarWidgets');
        $this->composeSidebar($view, \NotableTemplateConfiguration::query(), 'publicWidgets', 'publicSidebarWidgets');

        $view->with(array(
            'corporateClients' => $corporateClients,
            'publicClients' => $publicClients
        ));
    }
}
