src/Entity/Shipping.php line 9

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ShippingRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. #[ORM\Entity(repositoryClassShippingRepository::class)]
  6. class Shipping
  7. {
  8.     public const STATUS_SENT           'enviado';
  9.     public const STATUS_NOT_SENT       'no enviado';
  10.     public const STATUS_CANCELLED      'cancelado';
  11.     public const STATUS_STORE_PICKUP   'recogida en tienda';
  12.     #[ORM\Id]
  13.     #[ORM\GeneratedValue]
  14.     #[ORM\Column(type'integer')]
  15.     private ?int $id null;
  16.     /**
  17.      * Fecha en la que se envió el pedido.
  18.      */
  19.     #[ORM\Column(type'datetime'nullabletrue)]
  20.     private ?\DateTimeInterface $shippedAt null;
  21.     /**
  22.      * Transportista o compañía de envíos.
  23.      */
  24.     #[ORM\Column(type'string'length255nullabletrue)]
  25.     private ?string $carrier null;
  26.     #[ORM\Column(type'string'length20)]
  27.     private ?string $status null;
  28.     /**
  29.      * Relación bidireccional con Order. Se asume que cada Order tiene un Shipping.
  30.      */
  31.     #[ORM\OneToOne(targetEntityOrder::class, inversedBy'shipping'cascade: ['persist''remove'])]
  32.     #[ORM\JoinColumn(nullablefalse)]
  33.     private ?Order $order null;
  34.     // Getters y setters
  35.     public function getId(): ?int
  36.     {
  37.         return $this->id;
  38.     }
  39.     public function getShippedAt(): ?\DateTimeInterface
  40.     {
  41.         return $this->shippedAt;
  42.     }
  43.     public function setShippedAt(?\DateTimeInterface $shippedAt): self
  44.     {
  45.         $this->shippedAt $shippedAt;
  46.         return $this;
  47.     }
  48.     public function getCarrier(): ?string
  49.     {
  50.         return $this->carrier;
  51.     }
  52.     public function setCarrier(?string $carrier): self
  53.     {
  54.         $this->carrier $carrier;
  55.         return $this;
  56.     }
  57.     public function getStatus(): ?string
  58.     {
  59.         return $this->status;
  60.     }
  61.     public function setStatus(string $status): self
  62.     {
  63.         $allowed = [
  64.             self::STATUS_SENT,
  65.             self::STATUS_NOT_SENT,
  66.             self::STATUS_CANCELLED,
  67.             self::STATUS_STORE_PICKUP,
  68.         ];
  69.         if (!in_array($status$allowedtrue)) {
  70.             throw new \InvalidArgumentException("Estado de envío no válido.");
  71.         }
  72.         $this->status $status;
  73.         return $this;
  74.     }
  75.     public function getOrder(): ?Order
  76.     {
  77.         return $this->order;
  78.     }
  79.     public function setOrder(Order $order): self
  80.     {
  81.         $this->order $order;
  82.         return $this;
  83.     }
  84. }