<?php

namespace OfficeBrain\Bundle\SocialMediaBundle\Manager\AbstractManager;

use OfficeBrain\Bundle\SocialMediaBundle\Form\SocialMediaType;
use OfficeBrain\Bundle\SocialMediaBundle\Entity\SocialMedia;

abstract class SocialMediaAbstract
{
    const STATUS_ERROR = 'error';
    const STATUS_SUCCESS = 'success';
    const STATUS_ERROR_MESSAGE = 'error_message';
    const STATUS_SUCCESS_MESSAGE = 'success_message';

    protected $socialMediaRepository;
    protected $entityManager;
    protected $request;
    protected $projectSetting;
    protected $configurationRule;
    protected $formManager;
    protected $translatorManager;

    public function __construct($container, $entityManager, $requestParameters, $formManager, $translatorManager)
    {
        $this->request = $requestParameters;
        $this->entityManager = $entityManager;
        $this->container = $container;
        $this->projectSetting = $this->request->get('project_setting');
        $this->socialMediaRepository = $this->entityManager->getRepository('OfficeBrainSocialMediaBundle:SocialMedia');
        $this->translator = $translatorManager;
        $this->formManager = $formManager;
    }
    /**
     * @author OfficeBrain 4246 <info@officebrain.com>
     * Description:  for generate form.
     *
     * @param : NULL
     *
     * @return: data
     *
     * @throws Exception : Null
     */
    public function getForm($type = 'feed')
    {
        $socialMediaObj = new SocialMedia();
        $socialMediaTypeObj = new SocialMediaType($type);
        return $this->formManager->create($socialMediaTypeObj, $socialMediaObj);
    }
}
