<?php
namespace Moussaka\Controller\Intranet;

use DebugBar\DataCollector\MessagesCollector;
use MartynBiz\PHPDebugBar;
use Moussaka\Bin\Core\Container\Container;
use Moussaka\Controller\Controller;
use Moussaka\Model\Entity\Artist;
use Moussaka\Model\Entity\Home;
use Moussaka\Model\Entity\Media;
use Moussaka\Model\Entity\Work;

/**
 * Class WorkController
 * @package Moussaka\Controller\Intranet
 * Home sweet Home :)
 */
class WorkController extends Controller
{


    /**
     * @return String
     * @route /Work
     * @route\name workAdmin
     * @ACL\roles admin
     * @ACL\alt /admin/secure/auth
     */
    public function workAction($id = NULL)
    {

        global $c;


        $listCategories = $c->EM->orderByDesc('zindex')->getAllCategory();



        $c[ 'dbg.EM' ]->info("ID = " . $id);


        if(!empty($id)){
            $category = $c->EM->getOneCategoryByCategoryId($id);


            $allWorks = $category->getWorks();
            $randworks = [];
        } else{
            $category = [];
                foreach($listCategories as $cat){
                    $category = $cat;
                    break;
                }

            $allWorks = NULL;

            $randworks = $c->EM->getAllRandWork();
          //  $c[ 'dbg.EM' ]->addM("randworks = " . $randworks);
        }

        $c['dbg.EM']->addMessage($randworks);

        return $this->render(['listCategories' => $listCategories, 'selectedId' => $id, 'selectedItem' => $category, 'listWorks' => $allWorks, 'randWorks' => $randworks]);

    }


    /**
     * @return String
     * @route /editWork
     * @route\name editWorkAdmin
     * @ACL\roles admin
     * @ACL\alt /admin/secure/auth
     */
    public function editWorkAction($id = NULL)
    {

        global $c;

        //echo $id;
        $artistId = $c->req->getInt('artist');
        if(empty($id)){
            //$artistId = $c->req->getInt('artist'); // /!\ May be NULL !!!
            $work     = new Work();
            $work->setArtistId($artistId);
            $c->EM->temp()->persist($work);
            $medias         = NULL;
            $listCategWorks = NULL;
        } else if(!empty( $artistId )){
            $work     = new Work();
            $work->setArtistId($artistId);
            $c->EM->temp()->persist($work);
            $medias         = NULL;
            $listCategWorks = NULL;
        } else{
            $work           = $c->EM->getOneWorkByWorkId($id);
            $artistId       = ($work->getArtistId());
            $medias         = $work->getMedias();
            $listCategWorks = $work->getCategorys();
        }
        $artistName = "Artist's name";
        $artist     = $c->EM->getOneArtistByArtistId($artistId);
        $series     = [];
        if($artist !== FALSE){
            $artistName = $artist->getFirstname() . " " . $artist->getLastname();
            $series     = $artist->getSerie();
        }
        $categories = $c->EM->getAllCategory();

        return $this->render(['work'           => $work,
                              'categories'     => $categories,
                              'listCategWorks' => $listCategWorks,
                              'medias'         => $medias,
                              "artistName"     => $artistName,
                              'series'         => $series]);

    }

    /**
     * @route /ajax/randomWorksImg
     * @route\name randomWorksImg
     */
    public function randomWorksImgAction(){
        global $c;
        $this->render(['randWorks' => $c->EM->getAllRandWork()]);
    }


}