src/Entity/MailServer.php line 32

Open in your IDE?
  1. <?php
  2. /**
  3.  * @author Leo BANNHOLTZER (contact@scaledev.fr)
  4.  * @copyright 2021 - ScaleDEV SAS, 12 RUE CHARLES MORET, 10120 ST ANDRE LES VERGERS
  5.  * @license commercial
  6.  */
  7. declare(strict_types=1);
  8. namespace App\Entity;
  9. use App\Entity\Traits\OpensslServiceEntity;
  10. use Symfony\Component\Uid\Uuid;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Gedmo\Mapping\Annotation as Gedmo;
  13. use App\Repository\MailServerRepository;
  14. use Gedmo\Timestampable\Traits\TimestampableEntity;
  15. use Symfony\Bridge\Doctrine\IdGenerator\UuidGenerator;
  16. use App\DoctrineExtensions\SoftDeleteable\Traits\UserSoftDeleteableEntity;
  17. /**
  18.  * @ORM\Entity(repositoryClass=MailServerRepository::class)
  19.  * @ORM\Table(name="mail_server", indexes={
  20.  *  @ORM\Index(name="server", columns={"server"}),
  21.  *  @ORM\Index(name="port", columns={"port"}),
  22.  *  @ORM\Index(name="login", columns={"login"}),
  23.  *  @ORM\Index(name="deleted_at", columns={"deleted_at"})
  24.  * })
  25.  * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false, hardDelete=false)
  26.  */
  27. class MailServer
  28. {
  29.     use TimestampableEntity;
  30.     use UserSoftDeleteableEntity;
  31.     use OpensslServiceEntity;
  32.     /**
  33.      * @ORM\Id
  34.      * @ORM\Column(type="uuid")
  35.      * @ORM\GeneratedValue(strategy="CUSTOM")
  36.      * @ORM\CustomIdGenerator(class=UuidGenerator::class)
  37.      */
  38.     private ?Uuid $id null;
  39.     /**
  40.      * @ORM\ManyToOne(targetEntity=User::class, inversedBy="mail_servers")
  41.      */
  42.     private ?User $user null;
  43.     /**
  44.      * @ORM\ManyToOne(targetEntity=Context::class, inversedBy="mail_servers")
  45.      */
  46.     private ?Context $context null;
  47.     /**
  48.      * @ORM\Column(type="string", length=255)
  49.      */
  50.     private string $server;
  51.     /**
  52.      * @ORM\Column(type="string", length=16)
  53.      */
  54.     private string $port;
  55.     /**
  56.      * @ORM\Column(type="string")
  57.      */
  58.     private string $login;
  59.     /**
  60.      * @ORM\Column(type="string")
  61.      */
  62.     private string $password;
  63.     /**
  64.      * @ORM\Column(type="string", nullable=true)
  65.      */
  66.     private ?string $encryption null;
  67.     /**
  68.      * @return Uuid|null
  69.      */
  70.     public function getId(): ?Uuid
  71.     {
  72.         return $this->id;
  73.     }
  74.     /**
  75.      * @return User
  76.      */
  77.     public function getUser(): ?User
  78.     {
  79.         return $this->user;
  80.     }
  81.     /**
  82.      * @param User|null $user
  83.      * @return $this
  84.      */
  85.     public function setUser(?User $user): self
  86.     {
  87.         $this->user $user;
  88.         return $this;
  89.     }
  90.     /**
  91.      * @return Context|null
  92.      */
  93.     public function getContext(): ?Context
  94.     {
  95.         return $this->context;
  96.     }
  97.     /**
  98.      * @param Context|null $context
  99.      * @return $this
  100.      */
  101.     public function setContext(?Context $context): self
  102.     {
  103.         $this->context $context;
  104.         return $this;
  105.     }
  106.     /**
  107.      * @return string
  108.      */
  109.     public function getServer(): string
  110.     {
  111.         return $this->server;
  112.     }
  113.     /**
  114.      * @param string $server
  115.      * @return $this
  116.      */
  117.     public function setServer(string $server): self
  118.     {
  119.         $this->server $server;
  120.         return $this;
  121.     }
  122.     /**
  123.      * @return string
  124.      */
  125.     public function getPort(): string
  126.     {
  127.         return $this->port;
  128.     }
  129.     /**
  130.      * @param string $port
  131.      * @return $this
  132.      */
  133.     public function setPort(string $port): self
  134.     {
  135.         $this->port $port;
  136.         return $this;
  137.     }
  138.     /**
  139.      * @return string|null
  140.      */
  141.     public function getEncryption(): ?string
  142.     {
  143.         return $this->encryption;
  144.     }
  145.     /**
  146.      * @param string|null $encryption
  147.      * @return $this
  148.      */
  149.     public function setEncryption(?string $encryption): self
  150.     {
  151.         $this->encryption $encryption;
  152.         return $this;
  153.     }
  154.     /**
  155.      * @return string
  156.      */
  157.     public function getLogin(): string
  158.     {
  159.         return $this->login;
  160.     }
  161.     /**
  162.      * @param string $login
  163.      * @return $this
  164.      */
  165.     public function setLogin(string $login): self
  166.     {
  167.         $this->login $login;
  168.         return $this;
  169.     }
  170.     /**
  171.      * @param bool $decrypt
  172.      * @return string
  173.      */
  174.     public function getPassword(bool $decrypt true): string
  175.     {
  176.         $password $this->password;
  177.         return $decrypt $this->openssl->decrypt($password) : $password;
  178.     }
  179.     /**
  180.      * @param string $password
  181.      * @return $this
  182.      */
  183.     public function setPassword(string $password): self
  184.     {
  185.         $this->password $password;
  186.         return $this;
  187.     }
  188. }