src/Entity/Manager.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Service\Helper\DateTimeHelper;
  4. use DateTime;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Exception;
  7. /**
  8.  * Manager
  9.  *
  10.  * @ORM\Table(name="managers")
  11.  * @ORM\Entity(repositoryClass="App\Repository\ManagerRepository")
  12.  */
  13. class Manager
  14. {
  15.     use IdTrait;
  16.     /**
  17.      * @ORM\Column(name="created_at", type="datetime", nullable=false)
  18.      */
  19.     private DateTime $createdAt;
  20.     /**
  21.      * @ORM\OneToOne(targetEntity="User")
  22.      * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
  23.      */
  24.     private User $user;
  25.     /**
  26.      * @ORM\Column(name="visible", type="boolean", options={"default":1})
  27.      */
  28.     private bool $visible true;
  29.     /**
  30.      * @ORM\Column(name="first_name", type="string", nullable=true)
  31.      */
  32.     private ?string $firstName null;
  33.     /**
  34.      * @ORM\Column(name="last_name", type="string", nullable=true)
  35.      */
  36.     private ?string $lastName null;
  37.     /**
  38.      * @ORM\Column(name="father_name", type="string", nullable=true)
  39.      */
  40.     private ?string $fatherName null;
  41.     /**
  42.      * @ORM\Column(name="mango_extension_number", type="string", nullable=true, unique=true)
  43.      */
  44.     private ?string $mangoExtensionNumber null;
  45.     /**
  46.      * @throws Exception
  47.      */
  48.     public function __construct(User $user)
  49.     {
  50.         $this->user $user;
  51.         $this->createdAt DateTimeHelper::getNowDateTime();
  52.     }
  53.     public function getUser(): User
  54.     {
  55.         return $this->user;
  56.     }
  57.     public function setVisible(bool $visible): Manager
  58.     {
  59.         $this->visible $visible;
  60.         return $this;
  61.     }
  62.     public function isVisible(): bool
  63.     {
  64.         return $this->visible;
  65.     }
  66.     public function getFirstName(): ?string
  67.     {
  68.         return $this->firstName;
  69.     }
  70.     public function setFirstName(?string $firstName): Manager
  71.     {
  72.         $this->firstName $firstName;
  73.         return $this;
  74.     }
  75.     public function getLastName(): ?string
  76.     {
  77.         return $this->lastName;
  78.     }
  79.     public function setLastName(?string $lastName): Manager
  80.     {
  81.         $this->lastName $lastName;
  82.         return $this;
  83.     }
  84.     public function getFatherName(): ?string
  85.     {
  86.         return $this->fatherName;
  87.     }
  88.     public function setFatherName(?string $fatherName): Manager
  89.     {
  90.         $this->fatherName $fatherName;
  91.         return $this;
  92.     }
  93.     public function getFullName(): string
  94.     {
  95.         $fullName $this->lastName;
  96.         $fullName .= $this->firstName ? ($fullName ' ' null) . $this->firstName null;
  97.         return $fullName;
  98.     }
  99.     public function getMangoExtensionNumber(): ?string
  100.     {
  101.         return $this->mangoExtensionNumber;
  102.     }
  103.     public function setMangoExtensionNumber(?string $mangoExtensionNumber): Manager
  104.     {
  105.         $this->mangoExtensionNumber $mangoExtensionNumber;
  106.         return $this;
  107.     }
  108.     public function getShortName(): string
  109.     {
  110.         return preg_replace('~^(\S++)\s++(\S)\S++\s++(\S)\S++$~u''$1 $2.'trim($this->getFullName()));
  111.     }
  112. }