src/AppBundle/MainBundle/Entity/Support_New_Idea.php line 510

Open in your IDE?
  1. <?php
  2. namespace App\AppBundle\MainBundle\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. use JsonSerializable;
  8. /**
  9.  * AddOns
  10.  *
  11.  * @ORM\Entity
  12.  * @ORM\Table(name="support_new_idea")
  13.  * @ORM\HasLifecycleCallbacks()
  14.  */
  15. class Support_New_Idea implements JsonSerializable
  16. {
  17.     /**
  18.      * @ORM\Column(type="integer")
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue(strategy="AUTO")
  21.      */
  22.     private $id;
  23.     /**
  24.      * Many Token have one user. This is the owning side.
  25.      * @ORM\ManyToOne(targetEntity="User")
  26.      * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
  27.      */
  28.     private $user;
  29.     /**
  30.      * @var Collection
  31.      *
  32.      * @ORM\ManyToMany(targetEntity="Support_Attachments")
  33.      * @ORM\JoinTable(name="support_new_idea_attachment",
  34.      *      joinColumns={@ORM\JoinColumn(name="support_new_idea_id", referencedColumnName="id")},
  35.      *      inverseJoinColumns={@ORM\JoinColumn(name="support_attachment_id", referencedColumnName="id")}
  36.      *      )
  37.      */
  38.     private $attachments;
  39.     /**
  40.      * @ORM\Column(type="string", length=5000, nullable=false)
  41.      * @Assert\NotBlank()
  42.      */
  43.     private $message;
  44.     /**
  45.      * @ORM\Column(type="string", length=1000, nullable=false)
  46.      * @Assert\NotBlank()
  47.      */
  48.     private $subject;
  49.     /**
  50.      * Status = 1 - Pending, 2 - In Progress, 3 - Hold, 4 - Completed, 5 - User Not Reachable
  51.      * @ORM\Column(type="integer", nullable=false)
  52.      * @Assert\NotBlank()
  53.      */
  54.     private $status;
  55.     /**
  56.      * @ORM\Column(type="string", nullable=true)
  57.      * @Assert\NotBlank()
  58.      */
  59.     private $feedback;
  60.     /**
  61.      * @ORM\Column(type="string", nullable=true)
  62.      * @Assert\NotBlank()
  63.      */
  64.     private $device_model;
  65.     /**
  66.      * @ORM\Column(type="string", nullable=true)
  67.      * @Assert\NotBlank()
  68.      */
  69.     private $device_id;
  70.     /**
  71.      * @ORM\Column(type="string", nullable=true)
  72.      * @Assert\NotBlank()
  73.      */
  74.     private $device_name;
  75.     /**
  76.      * @ORM\Column(type="integer", nullable=true)
  77.      * @Assert\NotBlank()
  78.      */
  79.     private $device_type;//0 - iOS, 1 - Android
  80.     /**
  81.      * @ORM\Column(type="string", nullable=true)
  82.      * @Assert\NotBlank()
  83.      */
  84.     private $device_os_version;
  85.     /**
  86.      * @ORM\Column(type="string", nullable=true)
  87.      * @Assert\NotBlank()
  88.      */
  89.     private $app_version;
  90.     /**
  91.      * @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
  92.      * @Assert\NotBlank()
  93.      */
  94.     private $is_read;
  95.     /**
  96.      * @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
  97.      * @Assert\NotBlank()
  98.      */
  99.     private $is_fav;
  100.     private $user_email;
  101.     private $user_phone;
  102.     private $user_country_code;
  103.     private $user_profile_pic_url;
  104.     private $attachment_data = array();
  105.     private $user_id;
  106.     /**
  107.      * @return mixed
  108.      */
  109.     public function getId()
  110.     {
  111.         return $this->id;
  112.     }
  113.     /**
  114.      * @return mixed
  115.      */
  116.     public function getUser()
  117.     {
  118.         return $this->user;
  119.     }
  120.     /**
  121.      * @param mixed $user
  122.      */
  123.     public function setUser($user)
  124.     {
  125.         $this->user $user;
  126.     }
  127.     /**
  128.      * @return mixed
  129.      */
  130.     public function getMessage()
  131.     {
  132.         return $this->message;
  133.     }
  134.     /**
  135.      * @param mixed $message
  136.      */
  137.     public function setMessage($message)
  138.     {
  139.         $this->message $message;
  140.     }
  141.     /**
  142.      * @return mixed
  143.      */
  144.     public function getSubject()
  145.     {
  146.         return $this->subject;
  147.     }
  148.     /**
  149.      * @param mixed $subject
  150.      */
  151.     public function setSubject($subject)
  152.     {
  153.         $this->subject $subject;
  154.     }
  155.     /**
  156.      * @return mixed
  157.      */
  158.     public function getStatus()
  159.     {
  160.         return $this->status;
  161.     }
  162.     /**
  163.      * @param mixed $status
  164.      */
  165.     public function setStatus($status)
  166.     {
  167.         $this->status $status;
  168.     }
  169.     /**
  170.      * @return mixed
  171.      */
  172.     public function getFeedback()
  173.     {
  174.         return $this->feedback;
  175.     }
  176.     /**
  177.      * @param mixed $feedback
  178.      */
  179.     public function setFeedback($feedback)
  180.     {
  181.         $this->feedback $feedback;
  182.     }
  183.     /**
  184.      * @return mixed
  185.      */
  186.     public function getDeviceModel()
  187.     {
  188.         return $this->device_model;
  189.     }
  190.     /**
  191.      * @param mixed $device_model
  192.      */
  193.     public function setDeviceModel($device_model)
  194.     {
  195.         $this->device_model $device_model;
  196.     }
  197.     /**
  198.      * @return mixed
  199.      */
  200.     public function getDeviceId()
  201.     {
  202.         return $this->device_id;
  203.     }
  204.     /**
  205.      * @param mixed $device_id
  206.      */
  207.     public function setDeviceId($device_id)
  208.     {
  209.         $this->device_id $device_id;
  210.     }
  211.     /**
  212.      * @return mixed
  213.      */
  214.     public function getDeviceName()
  215.     {
  216.         return $this->device_name;
  217.     }
  218.     /**
  219.      * @param mixed $device_name
  220.      */
  221.     public function setDeviceName($device_name)
  222.     {
  223.         $this->device_name $device_name;
  224.     }
  225.     /**
  226.      * @return mixed
  227.      */
  228.     public function getDeviceType()
  229.     {
  230.         return $this->device_type;
  231.     }
  232.     /**
  233.      * @param mixed $device_type
  234.      */
  235.     public function setDeviceType($device_type)
  236.     {
  237.         $this->device_type $device_type;
  238.     }
  239.     /**
  240.      * @return mixed
  241.      */
  242.     public function getDeviceOsVersion()
  243.     {
  244.         return $this->device_os_version;
  245.     }
  246.     /**
  247.      * @param mixed $device_os_version
  248.      */
  249.     public function setDeviceOsVersion($device_os_version)
  250.     {
  251.         $this->device_os_version $device_os_version;
  252.     }
  253.     /**
  254.      * Add Attachment
  255.      *
  256.      * @param Support_Attachments $attachment
  257.      *
  258.      * @return Support_New_Idea
  259.      */
  260.     public function addSupportAttachment(Support_Attachments $attachment) {
  261.         if (!$this->attachments->contains($attachment)) {
  262.             $this->attachments->add($attachment);
  263.         }
  264.         return $this;
  265.     }
  266.     /**
  267.      * Remove Support_Attachments
  268.      *
  269.      * @param Support_Attachments $attachment
  270.      */
  271.     public function removeSupportAttachment(Support_Attachments $attachment) {
  272.         $this->attachments->removeElement($attachment);
  273.     }
  274.     /**
  275.      * Get Support_Attachments
  276.      *
  277.      * @return ArrayCollection
  278.      */
  279.     public function getAttachments() {
  280.         return $this->attachments;
  281.     }
  282.     /**
  283.      * @return mixed
  284.      */
  285.     public function getUserEmail()
  286.     {
  287.         return $this->user_email;
  288.     }
  289.     /**
  290.      * @param mixed $user_email
  291.      */
  292.     public function setUserEmail($user_email)
  293.     {
  294.         $this->user_email $user_email;
  295.     }
  296.     /**
  297.      * @return mixed
  298.      */
  299.     public function getUserPhone()
  300.     {
  301.         return $this->user_phone;
  302.     }
  303.     /**
  304.      * @param mixed $user_phone
  305.      */
  306.     public function setUserPhone($user_phone)
  307.     {
  308.         $this->user_phone $user_phone;
  309.     }
  310.     /**
  311.      * @return mixed
  312.      */
  313.     public function getUserCountryCode()
  314.     {
  315.         return $this->user_country_code;
  316.     }
  317.     /**
  318.      * @param mixed $user_country_code
  319.      */
  320.     public function setUserCountryCode($user_country_code)
  321.     {
  322.         $this->user_country_code $user_country_code;
  323.     }
  324.     /**
  325.      * @return mixed
  326.      */
  327.     public function getUserProfilePicUrl()
  328.     {
  329.         return $this->user_profile_pic_url;
  330.     }
  331.     /**
  332.      * @param mixed $user_profile_pic_url
  333.      */
  334.     public function setUserProfilePicUrl($user_profile_pic_url)
  335.     {
  336.         $this->user_profile_pic_url $user_profile_pic_url;
  337.     }
  338.     /**
  339.      * @return mixed
  340.      */
  341.     public function getAppVersion()
  342.     {
  343.         return $this->app_version;
  344.     }
  345.     /**
  346.      * @param mixed $app_version
  347.      */
  348.     public function setAppVersion($app_version)
  349.     {
  350.         $this->app_version $app_version;
  351.     }
  352.     /**
  353.      * @return array
  354.      */
  355.     public function getAttachmentData()
  356.     {
  357.         return $this->attachment_data;
  358.     }
  359.     /**
  360.      * @param array $attachment_data
  361.      */
  362.     public function setAttachmentData(array $attachment_data)
  363.     {
  364.         $this->attachment_data $attachment_data;
  365.     }
  366.     /**
  367.      * @return mixed
  368.      */
  369.     public function getIsRead()
  370.     {
  371.         return $this->is_read;
  372.     }
  373.     /**
  374.      * @param mixed $is_read
  375.      */
  376.     public function setIsRead($is_read)
  377.     {
  378.         $this->is_read $is_read;
  379.     }
  380.     /**
  381.      * @return mixed
  382.      */
  383.     public function getIsFav()
  384.     {
  385.         return $this->is_fav;
  386.     }
  387.     /**
  388.      * @param mixed $is_fav
  389.      */
  390.     public function setIsFav($is_fav)
  391.     {
  392.         $this->is_fav $is_fav;
  393.     }
  394.     /**
  395.      * @return mixed
  396.      */
  397.     public function getUserId()
  398.     {
  399.         return $this->user_id;
  400.     }
  401.     /**
  402.      * @param mixed $user_id
  403.      */
  404.     public function setUserId($user_id)
  405.     {
  406.         $this->user_id $user_id;
  407.     }
  408.     public function jsonSerialize()
  409.     {
  410.         return array(
  411.             'id' => $this->id,
  412.             'device_id' => $this->device_id,
  413.             'device_model' => $this->device_model,
  414.             'device_name' => $this->device_name,
  415.             'device_os_version' => $this->device_os_version,
  416.             'device_type' => $this->device_type,
  417.             'message' => $this->message,
  418.             'feedback' => $this->feedback,
  419.             'status' => $this->status,
  420.             'subject' => $this->subject,
  421.             'user_email' => $this->user_email,
  422.             'user_mobile' => $this->user_phone,
  423.             'user_country_code' => $this->user->getCountryCode(),
  424.             'user_name' => $this->user->getFirstName().' '.$this->user->getLastName(),
  425.             'user_profile_pic_url' => $this->user_profile_pic_url,
  426.             'attachment_data' => $this->attachment_data,
  427.             'app_version' => $this->app_version,
  428.             'is_read' => $this->is_read,
  429.             'is_fav' => $this->is_fav,
  430.             'user_id' => $this->user->getId(),
  431.             'created' => $this->createdAt->format('Y-m-d H:i:s'),
  432.             'updated' => $this->updatedAt->format('Y-m-d H:i:s'),
  433.         );
  434.     }
  435.     /**
  436.      * @var \DateTime $created
  437.      *
  438.      * @ORM\Column(name="created_at", type="datetime", nullable=false)
  439.      */
  440.     protected $createdAt;
  441.     /**
  442.      * @var \DateTime $updated
  443.      *
  444.      * @ORM\Column(name="updated_at", type="datetime", nullable=false)
  445.      */
  446.     protected $updatedAt;
  447.     public function getCreatedAt()
  448.     {
  449.         return $this->createdAt;
  450.     }
  451.     public function setCreatedAt($createdAt)
  452.     {
  453.         $this->createdAt $createdAt;
  454.         return $this;
  455.     }
  456.     public function getUpdatedAt()
  457.     {
  458.         return $this->updatedAt;
  459.     }
  460.     public function setUpdatedAt($updatedAt)
  461.     {
  462.         $this->updatedAt $updatedAt;
  463.         return $this;
  464.     }
  465.     /**
  466.      * @ORM\PrePersist
  467.      * @ORM\PreUpdate
  468.      */
  469.     public function updatedTimestamps()
  470.     {
  471.         $this->setUpdatedAt(new \DateTime());
  472.         if ($this->getCreatedAt() === null) {
  473.             $this->setCreatedAt(new \DateTime());
  474.         }
  475.     }
  476.     public function __construct() {
  477.         $this->setCreatedAt(new \DateTime());
  478.         $this->attachments = new ArrayCollection();
  479.     }
  480. }