src/Entity/Expediting/DocumentationKit.php line 17

  1. <?php
  2. namespace App\Entity\Expediting;
  3. use App\Doctrine\Type\Expediting\DocumentationKitStatus;
  4. use App\Doctrine\Type\Expediting\TransitType;
  5. use App\Dto\Expediting\DocumentationKitDatasheet;
  6. use App\Entity\Common\Blameable;
  7. use App\Entity\Common\Trackable;
  8. use App\Validator\IsValidEnum\IsValidEnum;
  9. use Doctrine\DBAL\Types\Types;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. #[ORM\Table(name'expediting_shipment_documentation_kit')]
  13. #[ORM\Entity]
  14. class DocumentationKit
  15. {
  16.     use Blameable;
  17.     use Trackable;
  18.     #[ORM\Id]
  19.     #[ORM\GeneratedValue(strategy'IDENTITY')]
  20.     #[ORM\SequenceGenerator(sequenceName'expediting_shipment_documentation_kit_id_seq')]
  21.     #[ORM\Column(typeTypes::INTEGER)]
  22.     private ?int $id null;
  23.     #[Assert\NotNull]
  24.     #[ORM\ManyToOne(targetEntityShipment::class, inversedBy'documentationKits')]
  25.     #[ORM\JoinColumn(name'shipment_id'nullablefalse)]
  26.     private ?Shipment $shipment null;
  27.     #[Assert\NotNull]
  28.     #[IsValidEnum(enumTransitType::class)]
  29.     #[ORM\Column(typeTypes::STRINGenumTypeTransitType::class)]
  30.     private ?TransitType $transitType null;
  31.     #[Assert\NotNull]
  32.     #[IsValidEnum(enumDocumentationKitStatus::class)]
  33.     #[ORM\Column(typeTypes::STRINGenumTypeDocumentationKitStatus::class, options: ['default' => 'DRAFTED'])]
  34.     private ?DocumentationKitStatus $status DocumentationKitStatus::DRAFTED;
  35.     #[Assert\Type(typeDocumentationKitDatasheet::class)]
  36.     #[ORM\Column(type'json_document'nullabletrueoptions: ['jsonb' => true])]
  37.     private ?DocumentationKitDatasheet $data null;
  38.     public function getId(): ?int
  39.     {
  40.         return $this->id;
  41.     }
  42.     public function getShipment(): ?Shipment
  43.     {
  44.         return $this->shipment;
  45.     }
  46.     public function setShipment(?Shipment $shipment): static
  47.     {
  48.         $this->shipment $shipment;
  49.         return $this;
  50.     }
  51.     public function getTransitType(): ?TransitType
  52.     {
  53.         return $this->transitType;
  54.     }
  55.     public function setTransitType(?TransitType $transitType): static
  56.     {
  57.         $this->transitType $transitType;
  58.         return $this;
  59.     }
  60.     public function getStatus(): ?DocumentationKitStatus
  61.     {
  62.         return $this->status;
  63.     }
  64.     public function setStatus(?DocumentationKitStatus $status): static
  65.     {
  66.         $this->status $status;
  67.         return $this;
  68.     }
  69.     public function getData(): ?DocumentationKitDatasheet
  70.     {
  71.         return $this->data;
  72.     }
  73.     public function setData(?DocumentationKitDatasheet $data): static
  74.     {
  75.         $this->data $data;
  76.         return $this;
  77.     }
  78. }