src/AppBundle/MainBundle/Entity/Support_Email.php line 520

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