<?php
namespace OfficeBrain\Bundle\ActivityBundle\Listener;

use Doctrine\ORM\Event\LifecycleEventArgs;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;

/**
* @author OfficeBrain 4160 <info@officebrain.com>
*
* Description :  ActivityLog Listener Class
*
**/
class EventLogListener
{
    protected $container;
    protected $activityManager;
    protected $logParameters;
    
    public function __construct(Container $container, $logParameters)
    {
        $this->container = $container;
        $this->logParameters = $logParameters;
        $this->activityManager = null;
    }
    
    public function init()
    {
        $this->activityManager = $this->container->get('office_brain_activity_api_manager');
    }
    
    public function postPersist(LifecycleEventArgs $lifecycleEventArgs)
    {
        $this->init();
        $this->activityManager->entityActivityLog($lifecycleEventArgs, $this->logParameters, 'post_add');
    }
    
    public function postUpdate(LifecycleEventArgs $lifecycleEventArgs)
    {
        $this->init();
        $this->activityManager->entityActivityLog($lifecycleEventArgs, $this->logParameters, 'post_update');
    }
    
    public function postRemove(LifecycleEventArgs $lifecycleEventArgs)
    {
        $this->init();
        $this->activityManager->entityActivityLog($lifecycleEventArgs, $this->logParameters, 'post_delete');
    }
}
