<?php
/**
* @author OfficeBrain 4160 <info@officebrain.com>
*
* Description :  Product Queue Document
*
**/
namespace OfficeBrain\Bundle\QueueBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * @MongoDB\Document(repositoryClass="OfficeBrain\Bundle\QueueBundle\Document\ProductQueueRepository")
 */
class ProductQueue
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\Field(type="string")
     */
    protected $from;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $status;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $culture;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $clientStatus;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $webStatus;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $virtualStatus;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $message;
    
    /**
     * @MongoDB\Field(type="int")
     */
    protected $instanceId;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $instanceType;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $name;

    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $objectName;
    
    /**
     * @MongoDB\Field(type="string")
     */
    protected $action;
    
    /**
     * @MongoDB\Field(type="hash")
     */
    protected $args;
    
    /**
     * @MongoDB\Field(type="int")
     * @MongoDB\Index(unique=false, order="asc")
     */
    protected $priority;
    
    /**
     * @MongoDB\Field(type="int")
     */
    protected $distributorId;
    
    /**
     * @MongoDB\Field(type="int")
     */
    protected $supplierId;
    
    /**
     * @MongoDB\Field(type="int")
     */
    protected $projectId;
    
    /**
     * When the job get started
     *
     * @MongoDB\Field(type="date")
     */
    protected $started;

    /**
     * When the job get finished
     *
     * @MongoDB\Field(type="date")
     */
    protected $finished;

    /**
     * @MongoDB\Field(type="date")
     */
    protected $createdAt;

    /**
     * @MongoDB\Field(type="date")
     */
    protected $updatedAt;


    /**
     * Get id
     *
     * @return id $id
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set status
     *
     * @param string $status
     * @return self
     */
    public function setStatus($status)
    {
        $this->status = $status;
        return $this;
    }

    /**
     * Get status
     *
     * @return string $status
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * Set message
     *
     * @param string $message
     * @return self
     */
    public function setMessage($message)
    {
        $this->message = $message;
        return $this;
    }

    /**
     * Get message
     *
     * @return string $message
     */
    public function getMessage()
    {
        return $this->message;
    }

    /**
     * Set instanceId
     *
     * @param int $instanceId
     * @return self
     */
    public function setInstanceId($instanceId)
    {
        $this->instanceId = $instanceId;
        return $this;
    }

    /**
     * Get instanceId
     *
     * @return int $instanceId
     */
    public function getInstanceId()
    {
        return $this->instanceId;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return self
     */
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    /**
     * Get name
     *
     * @return string $name
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set objectName
     *
     * @param string $objectName
     * @return self
     */
    public function setObjectName($objectName)
    {
        $this->objectName = $objectName;
        return $this;
    }

    /**
     * Get objectName
     *
     * @return string $objectName
     */
    public function getObjectName()
    {
        return $this->objectName;
    }

    /**
     * Set action
     *
     * @param string $action
     * @return self
     */
    public function setAction($action)
    {
        $this->action = $action;
        return $this;
    }

    /**
     * Get action
     *
     * @return string $action
     */
    public function getAction()
    {
        return $this->action;
    }

    /**
     * Set args
     *
     * @param hash $args
     * @return self
     */
    public function setArgs($args)
    {
        $this->args = $args;
        return $this;
    }

    /**
     * Get args
     *
     * @return hash $args
     */
    public function getArgs()
    {
        return $this->args;
    }

    /**
     * Set priority
     *
     * @param int $priority
     * @return self
     */
    public function setPriority($priority)
    {
        $this->priority = $priority;
        return $this;
    }

    /**
     * Get priority
     *
     * @return int $priority
     */
    public function getPriority()
    {
        return $this->priority;
    }

    /**
     * Set started
     *
     * @param date $started
     * @return self
     */
    public function setStarted($started)
    {
        $this->started = $started;
        return $this;
    }

    /**
     * Get started
     *
     * @return date $started
     */
    public function getStarted()
    {
        return $this->started;
    }

    /**
     * Set finished
     *
     * @param date $finished
     * @return self
     */
    public function setFinished($finished)
    {
        $this->finished = $finished;
        return $this;
    }

    /**
     * Get finished
     *
     * @return date $finished
     */
    public function getFinished()
    {
        return $this->finished;
    }

    /**
     * Set createdAt
     *
     * @param date $createdAt
     * @return self
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;
        return $this;
    }

    /**
     * Get createdAt
     *
     * @return date $createdAt
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param date $updatedAt
     * @return self
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;
        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return date $updatedAt
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set from
     *
     * @param string $from
     * @return self
     */
    public function setFrom($from)
    {
        $this->from = $from;
        return $this;
    }

    /**
     * Get from
     *
     * @return string $from
     */
    public function getFrom()
    {
        return $this->from;
    }

    /**
     * Set instanceType
     *
     * @param string $instanceType
     * @return self
     */
    public function setInstanceType($instanceType)
    {
        $this->instanceType = $instanceType;
        return $this;
    }

    /**
     * Get instanceType
     *
     * @return string $instanceType
     */
    public function getInstanceType()
    {
        return $this->instanceType;
    }

    /**
     * Set distributorId
     *
     * @param int $distributorId
     * @return self
     */
    public function setDistributorId($distributorId)
    {
        $this->distributorId = $distributorId;
        return $this;
    }

    /**
     * Get distributorId
     *
     * @return int $distributorId
     */
    public function getDistributorId()
    {
        return $this->distributorId;
    }

    /**
     * Set supplierId
     *
     * @param int $supplierId
     * @return self
     */
    public function setSupplierId($supplierId)
    {
        $this->supplierId = $supplierId;
        return $this;
    }

    /**
     * Get supplierId
     *
     * @return int $supplierId
     */
    public function getSupplierId()
    {
        return $this->supplierId;
    }

    /**
     * Set projectId
     *
     * @param int $projectId
     * @return self
     */
    public function setProjectId($projectId)
    {
        $this->projectId = $projectId;
        return $this;
    }

    /**
     * Get projectId
     *
     * @return int $projectId
     */
    public function getProjectId()
    {
        return $this->projectId;
    }

    /**
     * Set culture
     *
     * @param string $culture
     * @return self
     */
    public function setCulture($culture)
    {
        $this->culture = $culture;
        return $this;
    }

    /**
     * Get culture
     *
     * @return string $culture
     */
    public function getCulture()
    {
        return $this->culture;
    }

    /**
     * Set webStatus
     *
     * @param string $webStatus
     * @return self
     */
    public function setWebStatus($webStatus)
    {
        $this->webStatus = $webStatus;
        return $this;
    }

    /**
     * Get webStatus
     *
     * @return string $webStatus
     */
    public function getWebStatus()
    {
        return $this->webStatus;
    }

    /**
     * Set clientStatus
     *
     * @param string $clientStatus
     * @return self
     */
    public function setClientStatus($clientStatus)
    {
        $this->clientStatus = $clientStatus;
        return $this;
    }

    /**
     * Get clientStatus
     *
     * @return string $clientStatus
     */
    public function getClientStatus()
    {
        return $this->clientStatus;
    }

    /**
     * Set virtualStatus
     *
     * @param string $virtualStatus
     * @return self
     */
    public function setVirtualStatus($virtualStatus)
    {
        $this->virtualStatus = $virtualStatus;
        return $this;
    }

    /**
     * Get virtualStatus
     *
     * @return string $virtualStatus
     */
    public function getVirtualStatus()
    {
        return $this->virtualStatus;
    }
}
