src/Entity/User.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use FOS\UserBundle\Model\User as BaseUser;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use JMS\Serializer\Annotation AS Serializer;
  7. use Symfony\Component\Validator\Constraints AS Validation;
  8. /**
  9.  * @ORM\Entity()
  10.  * @ORM\Table(name="user")
  11.  *
  12.  * @Serializer\ExclusionPolicy("all")
  13.  * @Serializer\AccessorOrder("custom", custom = {"id", "civility", "firstname", "lastname", "birthdate", "email", "phone", "mobile", "address", "enabled", "roles"})
  14.  */
  15. class User extends BaseUser{
  16.     /**
  17.      * @ORM\Id
  18.      * @ORM\Column(type="integer")
  19.      * @ORM\GeneratedValue(strategy="AUTO")
  20.      *
  21.      * @Serializer\Expose()
  22.      */
  23.     protected $id;
  24.     /**
  25.      * @var string | null
  26.      * @ORM\Column(type="string", length=10, nullable=true)
  27.      *
  28.      * @Validation\NotBlank()
  29.      * @Validation\Choice({"Monsieur", "Madame"})
  30.      * @Serializer\Expose()
  31.      */
  32.     protected $civility;
  33.     /**
  34.      * @var string | null
  35.      * @ORM\Column(type="string", length=70, nullable=true)
  36.      *
  37.      * @Validation\NotBlank()
  38.      * @Serializer\Expose()
  39.      */
  40.     protected $firstname;
  41.     /**
  42.      * @var string | null
  43.      * @ORM\Column(type="string", length=70, nullable=true)
  44.      *
  45.      * @Validation\NotBlank()
  46.      * @Serializer\Expose()
  47.      */
  48.     protected $lastname;
  49.     /**
  50.      * @var \DateTime | null
  51.      * @ORM\Column(name="birthdate", type="datetime", nullable=true)
  52.      *
  53.      * @Serializer\Expose()
  54.      */
  55.     protected $birthdate;
  56.     /**
  57.      * @var string | null
  58.      * @ORM\Column(type="string", length=20, nullable=true)
  59.      *
  60.      * @Serializer\Expose()
  61.      */
  62.     protected $phone;
  63.     /**
  64.      * @var string | null
  65.      * @ORM\Column(type="string", length=20, nullable=true)
  66.      *
  67.      * @Serializer\Expose()
  68.      */
  69.     protected $mobile;
  70.     /**
  71.      * @var Address | null
  72.      * @ORM\OneToOne(targetEntity="Address", mappedBy="user", cascade={"persist", "remove"}, orphanRemoval=true)
  73.      * @ORM\JoinColumn(name="address_id", referencedColumnName="id", onDelete="SET NULL", nullable=true)
  74.      *
  75.      * @Serializer\Expose()
  76.      */
  77.     protected $address;
  78.     /**
  79.      * @var string | null
  80.      * @ORM\Column(type="string", length=50, nullable=true)
  81.      */
  82.     protected $facebookId;
  83.     /**
  84.      * @var string | null
  85.      * @ORM\Column(type="string", length=50, nullable=true)
  86.      */
  87.     protected $googleId;
  88.     /**
  89.      * @ORM\OneToOne(targetEntity="App\Entity\Image", mappedBy="User", cascade={"persist", "remove"})
  90.      * @ORM\JoinColumn(name="image_id", referencedColumnName="id", onDelete="SET NULL", nullable=true)
  91.      *
  92.      * @Serializer\Expose()
  93.      */
  94.     private $image;
  95.     /**
  96.      * @var \DateTime | null
  97.      * @ORM\Column(name="created_at", type="datetime", nullable=true)
  98.      *
  99.      * @Serializer\Expose()
  100.      */
  101.     protected $createdAt;
  102.     /**
  103.      * @var User | null
  104.      * @ORM\ManyToOne(targetEntity="User")
  105.      * @ORM\JoinColumn(name="created_by", referencedColumnName="id", onDelete="SET NULL", nullable=true)
  106.      */
  107.     protected $createdBy;
  108.     /**
  109.      * @var \DateTime | null
  110.      * @ORM\Column(name="updated_at", type="datetime", nullable=true)
  111.      */
  112.     protected $updatedAt;
  113.     /**
  114.      * @var User | null
  115.      * @ORM\ManyToOne(targetEntity="User")
  116.      * @ORM\JoinColumn(name="updated_by", referencedColumnName="id", onDelete="SET NULL", nullable=true)
  117.      */
  118.     protected $updatedBy;
  119.     /**
  120.      * @var \DateTime | null
  121.      * @ORM\Column(name="deleted_at", type="datetime", nullable=true)
  122.      */
  123.     protected $deletedAt;
  124.     /**
  125.      * @var User | null
  126.      * @ORM\ManyToOne(targetEntity="User")
  127.      * @ORM\JoinColumn(name="deleted_by", referencedColumnName="id", onDelete="SET NULL", nullable=true)
  128.      */
  129.     protected $deletedBy;
  130.     /**
  131.      * @return mixed
  132.      */
  133.     public function getId()
  134.     {
  135.         return $this->id;
  136.     }
  137.     /**
  138.      * @return null|string
  139.      */
  140.     public function getCivility(): ?string
  141.     {
  142.         return $this->civility;
  143.     }
  144.     /**
  145.      * @param null|string $civility
  146.      * @return User
  147.      */
  148.     public function setCivility(?string $civility): User
  149.     {
  150.         $this->civility $civility;
  151.         return $this;
  152.     }
  153.     /**
  154.      * @return null|string
  155.      */
  156.     public function getFirstname(): ?string
  157.     {
  158.         return $this->firstname;
  159.     }
  160.     /**
  161.      * @param null|string $firstname
  162.      * @return User
  163.      */
  164.     public function setFirstname(?string $firstname): User
  165.     {
  166.         $this->firstname $firstname;
  167.         return $this;
  168.     }
  169.     /**
  170.      * @return null|string
  171.      */
  172.     public function getLastname(): ?string
  173.     {
  174.         return $this->lastname;
  175.     }
  176.     /**
  177.      * @param null|string $lastname
  178.      * @return User
  179.      */
  180.     public function setLastname(?string $lastname): User
  181.     {
  182.         $this->lastname $lastname;
  183.         return $this;
  184.     }
  185.     /**
  186.      * @return \DateTime|null
  187.      */
  188.     public function getBirthdate(): ?\DateTime
  189.     {
  190.         return $this->birthdate;
  191.     }
  192.     /**
  193.      * @param \DateTime|null $birthdate
  194.      * @return User
  195.      */
  196.     public function setBirthdate(?\DateTime $birthdate): User
  197.     {
  198.         $this->birthdate $birthdate;
  199.         return $this;
  200.     }
  201.     /**
  202.      * @return null|string
  203.      */
  204.     public function getPhone(): ?string
  205.     {
  206.         return $this->phone;
  207.     }
  208.     /**
  209.      * @param null|string $phone
  210.      * @return User
  211.      */
  212.     public function setPhone(?string $phone): User
  213.     {
  214.         $this->phone $phone;
  215.         return $this;
  216.     }
  217.     /**
  218.      * @return null|string
  219.      */
  220.     public function getMobile(): ?string
  221.     {
  222.         return $this->mobile;
  223.     }
  224.     /**
  225.      * @param null|string $mobile
  226.      * @return User
  227.      */
  228.     public function setMobile(?string $mobile): User
  229.     {
  230.         $this->mobile $mobile;
  231.         return $this;
  232.     }
  233.     /**
  234.      * @return Address|null
  235.      */
  236.     public function getAddress(): ?Address
  237.     {
  238.         return $this->address;
  239.     }
  240.     /**
  241.      * @param Address|null $address
  242.      * @return User
  243.      */
  244.     public function setAddress(?Address $address): User
  245.     {
  246.         $this->address $address;
  247.         return $this;
  248.     }
  249.     /**
  250.      * @return null|string
  251.      */
  252.     public function getFacebookId(): ?string
  253.     {
  254.         return $this->facebookId;
  255.     }
  256.     /**
  257.      * @param null|string $facebookId
  258.      * @return User
  259.      */
  260.     public function setFacebookId(?string $facebookId): User
  261.     {
  262.         $this->facebookId $facebookId;
  263.         return $this;
  264.     }
  265.     /**
  266.      * @return null|string
  267.      */
  268.     public function getGoogleId(): ?string
  269.     {
  270.         return $this->googleId;
  271.     }
  272.     /**
  273.      * @param null|string $googleId
  274.      * @return User
  275.      */
  276.     public function setGoogleId(?string $googleId): User
  277.     {
  278.         $this->googleId $googleId;
  279.         return $this;
  280.     }
  281.     /**
  282.      * @param Image|null $image
  283.      * @return User
  284.      */
  285.     public function setImage(Image $image null)
  286.     {
  287.         $this->image $image;
  288.         return $this;
  289.     }
  290.     /**
  291.      * @return Image
  292.      */
  293.     public function getImage()
  294.     {
  295.         return $this->image;
  296.     }
  297.     /**
  298.      * @return \DateTime|null
  299.      */
  300.     public function getCreatedAt(): ?\DateTime
  301.     {
  302.         return $this->createdAt;
  303.     }
  304.     /**
  305.      * @param \DateTime|null $createdAt
  306.      * @return User
  307.      */
  308.     public function setCreatedAt(?\DateTime $createdAt): User
  309.     {
  310.         $this->createdAt $createdAt;
  311.         return $this;
  312.     }
  313.     /**
  314.      * @return User|null
  315.      */
  316.     public function getCreatedBy(): ?User
  317.     {
  318.         return $this->createdBy;
  319.     }
  320.     /**
  321.      * @param User|null $createdBy
  322.      * @return User
  323.      */
  324.     public function setCreatedBy(?User $createdBy): User
  325.     {
  326.         $this->createdBy $createdBy;
  327.         return $this;
  328.     }
  329.     /**
  330.      * @return \DateTime|null
  331.      */
  332.     public function getUpdatedAt(): ?\DateTime
  333.     {
  334.         return $this->updatedAt;
  335.     }
  336.     /**
  337.      * @param \DateTime|null $updatedAt
  338.      * @return User
  339.      */
  340.     public function setUpdatedAt(?\DateTime $updatedAt): User
  341.     {
  342.         $this->updatedAt $updatedAt;
  343.         return $this;
  344.     }
  345.     /**
  346.      * @return User|null
  347.      */
  348.     public function getUpdatedBy(): ?User
  349.     {
  350.         return $this->updatedBy;
  351.     }
  352.     /**
  353.      * @param User|null $updatedBy
  354.      * @return User
  355.      */
  356.     public function setUpdatedBy(?User $updatedBy): User
  357.     {
  358.         $this->updatedBy $updatedBy;
  359.         return $this;
  360.     }
  361.     /**
  362.      * @return \DateTime|null
  363.      */
  364.     public function getDeletedAt(): ?\DateTime
  365.     {
  366.         return $this->deletedAt;
  367.     }
  368.     /**
  369.      * @param \DateTime|null $deletedAt
  370.      * @return User
  371.      */
  372.     public function setDeletedAt(?\DateTime $deletedAt): User
  373.     {
  374.         $this->deletedAt $deletedAt;
  375.         return $this;
  376.     }
  377.     /**
  378.      * @return User|null
  379.      */
  380.     public function getDeletedBy(): ?User
  381.     {
  382.         return $this->deletedBy;
  383.     }
  384.     /**
  385.      * @param User|null $deletedBy
  386.      * @return User
  387.      */
  388.     public function setDeletedBy(?User $deletedBy): User
  389.     {
  390.         $this->deletedBy $deletedBy;
  391.         return $this;
  392.     }
  393.     /**
  394.      * Constructor
  395.      */
  396.     public function __construct()
  397.     {
  398.         parent::__construct();
  399.         $this->createdAt            = new \DateTime();
  400.     }
  401.     public function __toString()
  402.     {
  403.         return (string)$this->firstname." ".$this->lastname;
  404.     }
  405. }