<?php namespace App\Libs\Composers;

use App\Models\TeamMemberGroup;
use App\Models\TeamTemplateConfiguration;
use Illuminate\Support\Facades\DB;

class TeamComposer
{
    use RelatedComposerTrait;

    public function compose($view)
    {
        $data = $view->getData();
        $page = $data['object'];
        $templateData = $templateData = TeamTemplateConfiguration
            ::full()->where('entry_id', $page->id)->first();

        DB::connection()->flushQueryLog();

        $groups = TeamMemberGroup::full()->with(array(
            'teamMembers' => function ($query) {
                $query->full()->orderBy('position')->with('photo');
            }
        ))->orderBy('position')->get();

        $this->composeRelated($view, $templateData);

        $view->with(array(
            'groups' => $groups
        ));
    }
}
