<?php

namespace OfficeBrain\Bundle\ProductTagBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @author OfficeBrain 4505 <info@officebrain.com>
 *
 * Description :  Entity For Private Campaign Product Mapping
 */

/**
 * PrivateCampaignProductMapping.
 *
 * @ORM\Table(name="tbl_private_campaign_product_mapping", options={"type"="InnoDB","charset"="utf8","collate"="utf8_unicode_ci"})
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateCampaignProductMappingRepository")
 */
class PrivateCampaignProductMapping
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint", length=20, options={"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var int
     *
     * @ORM\Column(name="product_id",type="bigint", length=20, options={"unsigned"=true})
     */
    private $productId;

    /**
     * @var int
     *
     * @ORM\Column(name="product_sku",type="string", length=255, options={"unsigned"=true})
     */
    private $productSku;

    /**
     * Bidirectional (OWNING SIDE - FK).
     *
     * @ORM\ManyToOne(targetEntity="\OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateCampaignMaster", inversedBy="campaignProductMapping")
     * @ORM\JoinColumn(name="campaign_id", nullable=false)
     */
    protected $campaign;

    /**
     * Set productId.
     *
     * @param int $productId
     *
     * @return PrivateCampaignProductMapping
     */
    public function setProductId($productId)
    {
        $this->productId = $productId;

        return $this;
    }

    /**
     * Get productId.
     *
     * @return int
     */
    public function getProductId()
    {
        return $this->productId;
    }

    /**
     * Set productSku.
     *
     * @param int $productSku
     *
     * @return PrivateCampaignProductMapping
     */
    public function setProductSku($productSku)
    {
        $this->productSku = $productSku;

        return $this;
    }

    /**
     * Get productId.
     *
     * @return int
     */
    public function getProductSku()
    {
        return $this->productSku;
    }

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

    /**
     * Set campaign.
     *
     * @param \OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateCampaignMaster $campaign
     *
     * @return PrivateCampaignProductMapping
     */
    public function setCampaign(\OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateCampaignMaster $campaign = null)
    {
        $this->campaign = $campaign;

        return $this;
    }

    /**
     * Get campaign.
     *
     * @return \OfficeBrain\Bundle\ProductTagBundle\Entity\PrivateCampaignMaster
     */
    public function getCampaign()
    {
        return $this->campaign;
    }
}
