<?php

namespace OfficeBrain\Bundle\SubShopBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * SubShopInquiry.
 *
 * @ORM\Table("tbl_sub_shop_inquiry")
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\SubShopBundle\Entity\SubShopInquiryRepository")
 */
class SubShopInquiry
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="bigint", options={"unsigned":true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="first_name", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $firstName;

    /**
     * @var string
     *
     * @ORM\Column(name="last_name", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $lastName;

    /**
     * @var string
     *
     * @ORM\Column(name="company_name", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $companyName;

    /**
     * @var string
     *
     * @ORM\Column(name="address_line1", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $addressLine1;

    /**
     * @var string
     *
     * @ORM\Column(name="address_line2", type="string", length=255, nullable=true)
     */
    private $addressLine2;

    /**
     * @var string
     *
     * @ORM\Column(name="city", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $city;

    /**
     * @var string
     *
     * @ORM\Column(name="state", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $state;

    /**
     * @var string
     *
     * @ORM\Column(name="country", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $country;

    /**
     * @var string
     *
     * @ORM\Column(name="zip_code", type="string", length=50)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $zipCode;

    /**
     * @var string
     *
     * @ORM\Column(name="phone", type="string", length=50)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     */
    private $phone;

    /**
     * @var string
     *
     * @ORM\Column(name="fax", type="string", length=50, nullable=true)
     */
    private $fax;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255)
     * @Assert\NotBlank(message="subshop_inquiry.form.not_blank")
     *
     * @Assert\Regex(
     *     pattern = "(^\s*[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}\s*$)",
     *     message = "subshop_inquiry.form.email.valid"
     * )
     *
     * @Assert\Email(
     *     message = "subshop_inquiry.form.email.valid",
     *     checkMX = true
     * )
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="industry_type", type="string", length=255, nullable=true)
     */
    private $industryType;

    /**
     * @var string
     *
     * @ORM\Column(name="employee_length", type="string", length=50, nullable=true)
     */
    private $employeeLength;

    /**
     * @var string
     *
     * @ORM\Column(name="annual_budget", type="string", length=50, nullable=true)
     */
    private $annualBudget;

    /**
     * @var string
     *
     * @ORM\Column(name="product_range", type="string", length=50, nullable=true)
     */
    private $productRange;

    /**
     * @var string
     *
     * @ORM\Column(name="shop_type", type="string", length=50, nullable=true)
     */
    private $shopType;

    /**
     * @var bool
     *
     * @ORM\Column(name="has_shop", type="boolean", nullable=true)
     */
    private $hasShop;

    /**
     * @var string
     *
     * @ORM\Column(name="shop_link", type="text", nullable=true)
     */
    private $shopLink;

    /**
     * @var string
     *
     * @ORM\Column(name="anticipate_shop_roll_out", type="string", length=255, nullable=true)
     */
    private $anticipateShopRollOut;

    /**
     * @var string
     *
     * @ORM\Column(name="comments", type="text", nullable=true)
     */
    private $comments;

    /**
     * @var int
     *
     * @ORM\Column(name="instance_id", type="integer", nullable=true)
     */
    private $instanceId;

    /**
     * @var string
     *
     * @ORM\Column(name="instance_type", type="string", length=255, nullable=true)
     */
    private $instanceType;

    /**
     * @var int
     *          // Null = no status
     *          // 0    = On Hold
     *          // 1    = Approve
     *          // 2    = Reject
     * @ORM\Column(name="status", type="integer", nullable=true)
     */
    private $status;

    /**
     * @var int
     *
     * @ORM\Column(name="created_uid", type="integer", nullable=true)
     */
    private $createdUid;

    /**
     * @var int
     *
     * @ORM\Column(name="updated_uid", type="integer", nullable=true)
     */
    private $updatedUid;

    /**
     * @var int
     *
     * @ORM\Column(name="deleted_uid", type="integer", nullable=true)
     */
    private $deletedUid;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="datetime")
     */
    private $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     */
    private $updatedAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="deleted_at", type="datetime", nullable=true)
     */
    private $deletedAt;

    public function __construct()
    {
        $this->createdAt = new \DateTime();
    }

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

    /**
     * Set firstName.
     *
     * @param string $firstName
     *
     * @return SubShopInquiry
     */
    public function setFirstName($firstName)
    {
        $this->firstName = $firstName;

        return $this;
    }

    /**
     * Get firstName.
     *
     * @return string
     */
    public function getFirstName()
    {
        return $this->firstName;
    }

    /**
     * Set lastName.
     *
     * @param string $lastName
     *
     * @return SubShopInquiry
     */
    public function setLastName($lastName)
    {
        $this->lastName = $lastName;

        return $this;
    }

    /**
     * Get lastName.
     *
     * @return string
     */
    public function getLastName()
    {
        return $this->lastName;
    }

    /**
     * Set companyName.
     *
     * @param string $companyName
     *
     * @return SubShopInquiry
     */
    public function setCompanyName($companyName)
    {
        $this->companyName = $companyName;

        return $this;
    }

    /**
     * Get companyName.
     *
     * @return string
     */
    public function getCompanyName()
    {
        return $this->companyName;
    }

    /**
     * Set addressLine1.
     *
     * @param string $addressLine1
     *
     * @return SubShopInquiry
     */
    public function setAddressLine1($addressLine1)
    {
        $this->addressLine1 = $addressLine1;

        return $this;
    }

    /**
     * Get addressLine1.
     *
     * @return string
     */
    public function getAddressLine1()
    {
        return $this->addressLine1;
    }

    /**
     * Set addressLine2.
     *
     * @param string $addressLine2
     *
     * @return SubShopInquiry
     */
    public function setAddressLine2($addressLine2)
    {
        $this->addressLine2 = $addressLine2;

        return $this;
    }

    /**
     * Get addressLine2.
     *
     * @return string
     */
    public function getAddressLine2()
    {
        return $this->addressLine2;
    }

    /**
     * Set city.
     *
     * @param string $city
     *
     * @return SubShopInquiry
     */
    public function setCity($city)
    {
        $this->city = $city;

        return $this;
    }

    /**
     * Get city.
     *
     * @return string
     */
    public function getCity()
    {
        return $this->city;
    }

    /**
     * Set state.
     *
     * @param string $state
     *
     * @return SubShopInquiry
     */
    public function setState($state)
    {
        $this->state = $state;

        return $this;
    }

    /**
     * Get state.
     *
     * @return string
     */
    public function getState()
    {
        return $this->state;
    }

    /**
     * Set country.
     *
     * @param string $country
     *
     * @return SubShopInquiry
     */
    public function setCountry($country)
    {
        $this->country = $country;

        return $this;
    }

    /**
     * Get country.
     *
     * @return string
     */
    public function getCountry()
    {
        return $this->country;
    }

    /**
     * Set zipCode.
     *
     * @param string $zipCode
     *
     * @return SubShopInquiry
     */
    public function setZipCode($zipCode)
    {
        $this->zipCode = $zipCode;

        return $this;
    }

    /**
     * Get zipCode.
     *
     * @return string
     */
    public function getZipCode()
    {
        return $this->zipCode;
    }

    /**
     * Set phone.
     *
     * @param string $phone
     *
     * @return SubShopInquiry
     */
    public function setPhone($phone)
    {
        $this->phone = $phone;

        return $this;
    }

    /**
     * Get phone.
     *
     * @return string
     */
    public function getPhone()
    {
        return $this->phone;
    }

    /**
     * Set fax.
     *
     * @param string $fax
     *
     * @return SubShopInquiry
     */
    public function setFax($fax)
    {
        $this->fax = $fax;

        return $this;
    }

    /**
     * Get fax.
     *
     * @return string
     */
    public function getFax()
    {
        return $this->fax;
    }

    /**
     * Set email.
     *
     * @param string $email
     *
     * @return SubShopInquiry
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email.
     *
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set industryType.
     *
     * @param string $industryType
     *
     * @return SubShopInquiry
     */
    public function setIndustryType($industryType)
    {
        $this->industryType = $industryType;

        return $this;
    }

    /**
     * Get industryType.
     *
     * @return string
     */
    public function getIndustryType()
    {
        return $this->industryType;
    }

    /**
     * Set employeeLength.
     *
     * @param string $employeeLength
     *
     * @return SubShopInquiry
     */
    public function setEmployeeLength($employeeLength)
    {
        $this->employeeLength = $employeeLength;

        return $this;
    }

    /**
     * Get employeeLength.
     *
     * @return string
     */
    public function getEmployeeLength()
    {
        return $this->employeeLength;
    }

    /**
     * Set annualBudget.
     *
     * @param string $annualBudget
     *
     * @return SubShopInquiry
     */
    public function setAnnualBudget($annualBudget)
    {
        $this->annualBudget = $annualBudget;

        return $this;
    }

    /**
     * Get annualBudget.
     *
     * @return string
     */
    public function getAnnualBudget()
    {
        return $this->annualBudget;
    }

    /**
     * Set productRange.
     *
     * @param string $productRange
     *
     * @return SubShopInquiry
     */
    public function setProductRange($productRange)
    {
        $this->productRange = $productRange;

        return $this;
    }

    /**
     * Get productRange.
     *
     * @return string
     */
    public function getProductRange()
    {
        return $this->productRange;
    }

    /**
     * Set shopType.
     *
     * @param string $shopType
     *
     * @return SubShopInquiry
     */
    public function setShopType($shopType)
    {
        $this->shopType = $shopType;

        return $this;
    }

    /**
     * Get shopType.
     *
     * @return string
     */
    public function getShopType()
    {
        return $this->shopType;
    }

    /**
     * Set hasShop.
     *
     * @param bool $hasShop
     *
     * @return SubShopInquiry
     */
    public function setHasShop($hasShop)
    {
        $this->hasShop = $hasShop;

        return $this;
    }

    /**
     * Get hasShop.
     *
     * @return bool
     */
    public function getHasShop()
    {
        return $this->hasShop;
    }

    /**
     * Set shopLink.
     *
     * @param string $shopLink
     *
     * @return SubShopInquiry
     */
    public function setShopLink($shopLink)
    {
        $this->shopLink = $shopLink;

        return $this;
    }

    /**
     * Get shopLink.
     *
     * @return string
     */
    public function getShopLink()
    {
        return $this->shopLink;
    }

    /**
     * Set anticipateShopRollOut.
     *
     * @param string $anticipateShopRollOut
     *
     * @return SubShopInquiry
     */
    public function setAnticipateShopRollOut($anticipateShopRollOut)
    {
        $this->anticipateShopRollOut = $anticipateShopRollOut;

        return $this;
    }

    /**
     * Get anticipateShopRollOut.
     *
     * @return string
     */
    public function getAnticipateShopRollOut()
    {
        return $this->anticipateShopRollOut;
    }

    /**
     * Set comments.
     *
     * @param string $comments
     *
     * @return SubShopInquiry
     */
    public function setComments($comments)
    {
        $this->comments = $comments;

        return $this;
    }

    /**
     * Get comments.
     *
     * @return string
     */
    public function getComments()
    {
        return $this->comments;
    }

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

        return $this;
    }

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

    /**
     * Set createdAt.
     *
     * @param \DateTime $createdAt
     *
     * @return SubShopInquiry
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;

        return $this;
    }

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

    /**
     * Set updatedAt.
     *
     * @param \DateTime $updatedAt
     *
     * @return SubShopInquiry
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

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

    /**
     * Set status.
     *
     * @param int $status
     *
     * @return SubShopInquiry
     */
    public function setStatus($status)
    {
        $this->status = $status;

        return $this;
    }

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

    /**
     * Set deletedAt.
     *
     * @param \DateTime $deletedAt
     *
     * @return SubShopInquiry
     */
    public function setDeletedAt($deletedAt)
    {
        $this->deletedAt = $deletedAt;

        return $this;
    }

    /**
     * Get deletedAt.
     *
     * @return \DateTime
     */
    public function getDeletedAt()
    {
        return $this->deletedAt;
    }

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

        return $this;
    }

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

    /**
     * Set createdUid.
     *
     * @param int $createdUid
     *
     * @return SubShopInquiry
     */
    public function setCreatedUid($createdUid)
    {
        $this->createdUid = $createdUid;

        return $this;
    }

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

    /**
     * Set updatedUid.
     *
     * @param int $updatedUid
     *
     * @return SubShopInquiry
     */
    public function setUpdatedUid($updatedUid)
    {
        $this->updatedUid = $updatedUid;

        return $this;
    }

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

    /**
     * Set deletedUid.
     *
     * @param int $deletedUid
     *
     * @return SubShopInquiry
     */
    public function setDeletedUid($deletedUid)
    {
        $this->deletedUid = $deletedUid;

        return $this;
    }

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