src/Flexy/ShopBundle/Entity/Resource/Agent.php line 19

  1. <?php
  2. namespace App\Flexy\ShopBundle\Entity\Resource;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Entity\User;
  5. use App\Flexy\ShopBundle\Entity\Order\Order;
  6. use App\Flexy\ShopBundle\Entity\Store\Store;
  7. use App\Flexy\ShopBundle\Repository\Resource\AgentRepository;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. use Gedmo\Mapping\Annotation as Gedmo;
  13. #[ApiResource]
  14. #[ORM\Entity(repositoryClassAgentRepository::class)]
  15. #[Gedmo\SoftDeleteable(fieldName'deletedAt'timeAwarefalsehardDeletetrue)]
  16. class Agent
  17. {
  18.     #[ORM\Id]
  19.     #[ORM\GeneratedValue]
  20.     #[ORM\Column(type'integer')]
  21.     private $id;
  22.     #[ORM\Column(type'string'length255)]
  23.     private ?string $firstName null;
  24.     #[ORM\Column(type'string'length255)]
  25.     private ?string $lastName null;
  26.     #[ORM\OneToOne(targetEntityUser::class, cascade: ['persist''remove'])]
  27.     #[Assert\Valid()]
  28.     private ?\App\Entity\User $user null;
  29.     #[ORM\Column(type'string'length255nullabletrue)]
  30.     private ?string $email null;
  31.     #[ORM\Column(type'string'length255)]
  32.     private ?string $phone null;
  33.     #[ORM\Column(type'string'length255nullabletrue)]
  34.     private ?string $address null;
  35.     #[ORM\Column(type'string'length255nullabletrue)]
  36.     private ?string $photoIdentity null;
  37.     #[ORM\Column(type'string'length255nullabletrue)]
  38.     private ?string $gender null;
  39.     #[ORM\OneToMany(targetEntityOrder::class, mappedBy'agent')]
  40.     private \Doctrine\Common\Collections\Collection|array $orders;
  41.     #[ORM\Column(type'string'length255nullabletrue)]
  42.     private ?string $identityNumber null;
  43.     #[ORM\OneToMany(targetEntityOrder::class, mappedBy'agentToDo')]
  44.     private \Doctrine\Common\Collections\Collection|array $ordersToDolist;
  45.     #[ORM\ManyToOne(inversedBy'agents')]
  46.     private ?AgentType $agentType null;
  47.     #[ORM\ManyToOne(inversedBy'agents')]
  48.     private ?Store $store null;
  49.     #[ORM\ManyToOne(inversedBy'agent')]
  50.     private ?AgentObjective $agentObjective null;
  51.     #[ORM\Column(nullabletrue)]
  52.     private ?\DateTimeImmutable $deletedAt null;
  53.     public function __construct()
  54.     {
  55.         $this->orders = new ArrayCollection();
  56.         $this->user = new User();
  57.         $this->ordersToDolist = new ArrayCollection();
  58.     }
  59.     public function __toString()
  60.     {
  61.         return $this->firstName." ".$this->lastName." (".$this->getUser().")";
  62.     }
  63.     public function getId(): ?int
  64.     {
  65.         return $this->id;
  66.     }
  67.     public function getFirstName(): ?string
  68.     {
  69.         return $this->firstName;
  70.     }
  71.     public function setFirstName(string $firstName): self
  72.     {
  73.         $this->firstName $firstName;
  74.         return $this;
  75.     }
  76.     public function getLastName(): ?string
  77.     {
  78.         return $this->lastName;
  79.     }
  80.     public function setLastName(string $lastName): self
  81.     {
  82.         $this->lastName $lastName;
  83.         return $this;
  84.     }
  85.     public function getUser(): ?User
  86.     {
  87.         return $this->user;
  88.     }
  89.     public function setUser(?User $user): self
  90.     {
  91.         $this->user $user;
  92.         return $this;
  93.     }
  94.     public function getEmail(): ?string
  95.     {
  96.         return $this->email;
  97.     }
  98.     public function setEmail(?string $email): self
  99.     {
  100.         $this->email $email;
  101.         return $this;
  102.     }
  103.     public function getPhone(): ?string
  104.     {
  105.         return $this->phone;
  106.     }
  107.     public function setPhone(string $phone): self
  108.     {
  109.         $this->phone $phone;
  110.         return $this;
  111.     }
  112.     public function getAddress(): ?string
  113.     {
  114.         return $this->address;
  115.     }
  116.     public function setAddress(?string $address): self
  117.     {
  118.         $this->address $address;
  119.         return $this;
  120.     }
  121.     public function getPhotoIdentity(): ?string
  122.     {
  123.         return $this->photoIdentity;
  124.     }
  125.     public function setPhotoIdentity(?string $photoIdentity): self
  126.     {
  127.         $this->photoIdentity $photoIdentity;
  128.         return $this;
  129.     }
  130.     public function getGender(): ?string
  131.     {
  132.         return $this->gender;
  133.     }
  134.     public function setGender(?string $gender): self
  135.     {
  136.         $this->gender $gender;
  137.         return $this;
  138.     }
  139.     /**
  140.      * @return Collection<int, Order>
  141.      */
  142.     public function getOrders(): Collection
  143.     {
  144.         return $this->orders;
  145.     }
  146.     public function addOrder(Order $order): self
  147.     {
  148.         if (!$this->orders->contains($order)) {
  149.             $this->orders[] = $order;
  150.             $order->setAgent($this);
  151.         }
  152.         return $this;
  153.     }
  154.     public function removeOrder(Order $order): self
  155.     {
  156.         if ($this->orders->removeElement($order)) {
  157.             // set the owning side to null (unless already changed)
  158.             if ($order->getAgent() === $this) {
  159.                 $order->setAgent(null);
  160.             }
  161.         }
  162.         return $this;
  163.     }
  164.     public function getIdentityNumber(): ?string
  165.     {
  166.         return $this->identityNumber;
  167.     }
  168.     public function setIdentityNumber(?string $identityNumber): self
  169.     {
  170.         $this->identityNumber $identityNumber;
  171.         return $this;
  172.     }
  173.     /**
  174.      * @return Collection<int, Order>
  175.      */
  176.     public function getOrdersToDolist(): Collection
  177.     {
  178.         return $this->ordersToDolist;
  179.     }
  180.     public function addOrdersToDolist(Order $ordersToDolist): self
  181.     {
  182.         if (!$this->ordersToDolist->contains($ordersToDolist)) {
  183.             $this->ordersToDolist[] = $ordersToDolist;
  184.             $ordersToDolist->setAgentToDo($this);
  185.         }
  186.         return $this;
  187.     }
  188.     public function removeOrdersToDolist(Order $ordersToDolist): self
  189.     {
  190.         if ($this->ordersToDolist->removeElement($ordersToDolist)) {
  191.             // set the owning side to null (unless already changed)
  192.             if ($ordersToDolist->getAgentToDo() === $this) {
  193.                 $ordersToDolist->setAgentToDo(null);
  194.             }
  195.         }
  196.         return $this;
  197.     }
  198.     public function getAgentType(): ?AgentType
  199.     {
  200.         return $this->agentType;
  201.     }
  202.     public function setAgentType(?AgentType $agentType): self
  203.     {
  204.         $this->agentType $agentType;
  205.         return $this;
  206.     }
  207.     public function getStore(): ?Store
  208.     {
  209.         return $this->store;
  210.     }
  211.     public function setStore(?Store $store): self
  212.     {
  213.         $this->store $store;
  214.         return $this;
  215.     }
  216.     public function getAgentObjective(): ?AgentObjective
  217.     {
  218.         return $this->agentObjective;
  219.     }
  220.     public function setAgentObjective(?AgentObjective $agentObjective): self
  221.     {
  222.         $this->agentObjective $agentObjective;
  223.         return $this;
  224.     }
  225.         /**
  226.      * Get the value of deletedAt
  227.      */ 
  228.     public function getDeletedAt()
  229.     {
  230.         return $this->deletedAt;
  231.     }
  232.     /**
  233.      * Set the value of deletedAt
  234.      *
  235.      * @return  self
  236.      */ 
  237.     public function setDeletedAt($deletedAt)
  238.     {
  239.         $this->deletedAt $deletedAt;
  240.         return $this;
  241.     }
  242. }