<?php

namespace OfficeBrain\Bundle\SubShopBundle\Manager\AbstractManager;

/**
 * @author OfficeBrain 4494 <info@officebrain.com>
 *
 * Description : Sub shop Theme Abstract class
 **/
abstract class SubShopThemeAbstract
{
    protected $entityManager;
    protected $repository;
    protected $subShopThemeDesignRepository;
    protected $request;
    protected $cmsMenuManager;
    protected $projectSetting;
    protected $paginatorService;
    protected $recordsPerPage;
    protected $brandService;
    protected $language;
    protected $bannerMastermanager;
    protected $bannerManager;
    protected $cmsPageManager;
    protected $subSiteAccessManager;
    public $subShopMediaUploadLocation;

    public function __construct($entityManager, $request, $cmsMenuManager, $paginatorManager, $subShopMediaUploadLocation,$brandsManager,$language,$bannerMastermanager,$bannerManager,$cmsPageManager,$subSiteAccessManager)
    {
        $this->entityManager = $entityManager;
        $this->repository = $this->entityManager->getRepository('OfficeBrainSubShopBundle:SubShopTheme');
        $this->subshopThemeDesignRepository = $this->entityManager->getRepository('OfficeBrainSubShopBundle:SubShopThemeDesign');
        $this->subShopInstanceMetaRepository = $this->entityManager->getRepository('OfficeBrainSubShopBundle:SubshopInstanceMeta');
        $this->request = $request;
        $this->cmsMenuManager = $cmsMenuManager;
        $this->projectSetting = $this->request->get('project_setting');
        $this->paginatorManager = $paginatorManager;
        $this->subShopMediaUploadLocation = $subShopMediaUploadLocation;
        $this->recordsPerPage = $this->projectSetting['configuration_rule']['site_management']['option']['sub_shop']['option']['sub_shop_theme_record_per_page']['status'];

        $this->repository->setProjectSetting($this->projectSetting);
        $this->subShopInstanceMetaRepository->setProjectSetting($this->projectSetting);
        $this->brandService = $brandsManager;
        $this->language = $language;
        $this->bannerMastermanager = $bannerMastermanager;
        $this->bannerManager = $bannerManager;
        $this->cmsPageManager = $cmsPageManager;
        $this->subSiteAccessManager = $subSiteAccessManager;
    }

    public function __destruct()
    {
        unset($this->entityManager);
        unset($this->repository);
        unset($this->request);
        unset($this->projectSetting);
        unset($this->subshopThemeDesignRepository);
        unset($this->paginatorService);
        unset($this->recordsPerPage);
        unset($this->brandService);
        unset($this->language);
        unset($this->bannerMastermanager);
        unset($this->bannerManager);
        unset($this->cmsPageManager);
        unset($this->subSiteAccessManager);
    }

    public function setSubShopTheme($subshopTheme)
    {
    }

    public function getSubShopTheme($id)
    {
    }

    public function getSubShopThemeList()
    {
    }

    public function deleteSubShopTheme($id)
    {
    }

    public function revertSubShopTheme($id)
    {
    }

    public function approveSubShopTheme($id)
    {
    }

    public function rejectSubShopTheme($id)
    {
    }

    public function onHoldSubShopTheme($id)
    {
    }

    public function searchByStatusSubShopTheme()
    {
    }

    public function searchByDeleteSubShopTheme()
    {
    }
    
    public function searchSubShopTheme()
    {
    }

    public function setSubShopThemeDesign($subshopThemeDesign)
    {
    }

    public function getSubShopThemeDesign($subShopId, $mode = null)
    {
    }

    public function updateSubShopThemeCustomDesing($mode = 'draft')
    {
    }

    public function prepareSubShopThemeDesign($subshopThemeId, $subshopId = 0, $subShopTheme = array())
    {
    }

    public function updateSubShopThemeCustomImageDesing($mode = 'draft')
    {
    }

    public function setSubShopThemeDesingStatus()
    {
    }

    public function setSubShopThemeColor($themeColorList, $subshoptheme)
    {
    }

    public function initSubShopThemeDesign($subShopId)
    {
    }

    public function resetSubShopThemeDesign($subShopTheme, $autoSave)
    {
    }

    public function setSubShopThemeImage($subShopTheme)
    {
    }
    
    public function changeSubShopTheme($subshopId)
    {
    }
    
    public function mediaLocation()
    {
    }
    
    public function prepareSubShopThemeData($subShopThemeId = 0, $subShopInstanceId = 0, $subShopTheme = array())
    {
    }
    
    public function addSubShopInstanceKey($key, $value = null, $instanceId = 0)
    {
    }
    
    public function setSubShopInstanceKey($key, $value = null, $instanceId = 0)
    {
    }
    
    public function getSubShopInstanceKey($key, $instanceId = 0)
    {
    }
    
    public function updateSubShopInstanceKey($subShopInstanceMeta)
    {
    }
    
    public function getSubShopThemeMeta($instanceId)
    {
    }
    
    public function updateSubShopThemeMeta($instanceId)
    {
    }
    
    public function getBrandsForSubShop()
    {
    }
    
    public function getProductsForSubShop()
    {
    }
}
