src/Shared/Doctrine/Entity/Company.php line 29

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Shared\Doctrine\Entity;
  4. use App\Client\Doctrine\Entity\Client;
  5. use App\Order\Doctrine\Entity\Carrier;
  6. use App\Supplier\Doctrine\Entity\Supplier;
  7. use Doctrine\ORM\Mapping\Column;
  8. use Doctrine\ORM\Mapping\DiscriminatorColumn;
  9. use Doctrine\ORM\Mapping\DiscriminatorMap;
  10. use Doctrine\ORM\Mapping\Entity;
  11. use Doctrine\ORM\Mapping\GeneratedValue;
  12. use Doctrine\ORM\Mapping\Id;
  13. use Doctrine\ORM\Mapping\InheritanceType;
  14. use Doctrine\ORM\Mapping\Table;
  15. use Symfony\Component\Validator\Constraints\NotBlank;
  16. #[Entity]
  17. #[Table(name'company')]
  18. #[InheritanceType('SINGLE_TABLE')]
  19. #[DiscriminatorColumn(name'discr'type'string')]
  20. #[DiscriminatorMap([
  21.     'client' => Client::class,
  22.     'supplier' => Supplier::class,
  23.     'carrier' => Carrier::class,
  24. ])]
  25. abstract class Company
  26. {
  27.     #[Id]
  28.     #[Column(type'integer')]
  29.     #[GeneratedValue]
  30.     protected ?int $id null;
  31.     #[Column]
  32.     #[NotBlank]
  33.     protected string $companyName '';
  34.     #[Column(nullabletrue)]
  35.     protected ?string $companyNumber null;
  36.     #[Column(nullabletrue)]
  37.     protected ?string $vatNumber null;
  38.     public function __toString(): string
  39.     {
  40.         return $this->getCompanyName();
  41.     }
  42.     public function getId(): ?int
  43.     {
  44.         return $this->id;
  45.     }
  46.     public function getCompanyName(): string
  47.     {
  48.         return $this->companyName;
  49.     }
  50.     public function setCompanyName(string $companyName): void
  51.     {
  52.         $this->companyName $companyName;
  53.     }
  54.     public function getCompanyNumber(): ?string
  55.     {
  56.         return $this->companyNumber;
  57.     }
  58.     public function setCompanyNumber(?string $companyNumber): void
  59.     {
  60.         $this->companyNumber $companyNumber;
  61.     }
  62.     public function getVatNumber(): ?string
  63.     {
  64.         return $this->vatNumber;
  65.     }
  66.     public function setVatNumber(?string $vatNumber): void
  67.     {
  68.         $this->vatNumber $vatNumber;
  69.     }
  70. }