<?php

namespace OfficeBrain\Bundle\HomeSectionBundle\Entity;

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

/**
 * HomeSection
 *
 * @ORM\Table(name="tbl_home_section")
 * @ORM\Entity(repositoryClass="OfficeBrain\Bundle\HomeSectionBundle\Entity\HomeSectionRepository")
 */
class HomeSection
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", options={"unsigned":true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

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

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

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

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

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

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

    /**
     * Image file
     *
     * @var File
     *
     * @ORM\Column(name="uploaded_banner", type="string", length=255, nullable=true)
     */
    private $uploadedBanner;

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

    /**
     * @var integer
     *
     * @ORM\Column(name="status", type="integer", options={"default":1})
     * @Assert\NotBlank(message="bannertype.form.not_blank")
     */
    private $status;
    
    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     */
    private $createdAt;

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


    /**
     * @ORM\Column(type="bigint", name="sort_position", nullable=true, options={"default"=0})
     */
    protected $sortPosition=0;


    public function __construct()
    {
        
    }
    

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

    /**
     * Set sortPosition
     *
     * @param integer $sortPosition
     * @return SortPosition
     */
    public function setSortPosition($sortPosition)
    {
        $this->sortPosition = $sortPosition;
    
        return $this;
    }
    
    /**
     * Get sortPosition
     *
     * @return integer
     */
    public function getSortPosition()
    {
        return $this->sortPosition;
    }
    
     /** 
     * Set section
     *
     * @param string $section
     * @return HomeSection
     */
    public function setSection($section)
    {
        $this->section = $section;
    
        return $this;
    }
    
    /**
     * Get section
     *
     * @return string
     */
    public function getSection()
    {
        return $this->section;
    }

    /**
     * Set sectionHeading
     *
     * @param string $sectionHeading
     * @return HomeSection
     */
    public function setSectionHeading($sectionHeading)
    {
        $this->sectionHeading = $sectionHeading;
    
        return $this;
    }
    
    /**
     * Get sectionHeading
     *
     * @return string
     */
    public function getSectionHeading()
    {
        return $this->sectionHeading;
    }

    
    /**
     * Set sectionTitle
     *
     * @param string $sectionTitle
     * @return HomeSection
     */
    public function setSectionTitle($sectionTitle)
    {
        $this->sectionTitle = $sectionTitle;
    
        return $this;
    }
    
    /**
     * Get sectionTitle
     *
     * @return string
     */
    public function getSectionTitle()
    {
        return $this->sectionTitle;
    }

    /**
     * Set title
     *
     * @param string $title
     * @return HomeSection
     */
    public function setTitle($title)
    {
        $this->title = $title;
    
        return $this;
    }
    
    /**
     * Get title
     *
     * @return string
     */
    public function getTitle()
    {
        return $this->title;
    }

    
    /**
     * Set description
     *
     * @param string $description
     * @return HomeSection
     */
    public function setDescription($description)
    {
        $this->description = $description;
    
        return $this;
    }
    
    /**
     * Get description
     *
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    
    /**
     * Set buttonLabel
     *
     * @param string $buttonLabel
     * @return HomeSection
     */
    public function setButtonLabel($buttonLabel)
    {
        $this->buttonLabel = $buttonLabel;
    
        return $this;
    }
    
    /**
     * Get buttonLabel
     *
     * @return string
     */
    public function getButtonLabel()
    {
        return $this->buttonLabel;
    }

    /**
     * Set uploadedBanner
     *
     * @param string $uploadedBanner
     * @return HomeSection
     */
    public function setUploadedBanner($uploadedBanner)
    {
        $this->uploadedBanner = $uploadedBanner;
        return $this;
    }

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


    /**
     * Set link
     *
     * @param string $link
     * @return HomeSection
     */
    public function setLink($link)
    {
        $this->link = $link;
    
        return $this;
    }
    
    /**
     * Get link
     *
     * @return string
     */
    public function getLink()
    {
        return $this->link;
    }

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

     /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     * @return HomeSection
     */
    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 HomeSection
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

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

}
