src/Entity/DemurrageStatus.php line 46

Open in your IDE?
  1. <?php
  2. // @deprecated
  3. declare(strict_types=1);
  4. namespace App\Entity;
  5. use ApiPlatform\Core\Annotation\ApiProperty;
  6. use ApiPlatform\Core\Annotation\ApiResource;
  7. use App\Trait\TimestampableEntity;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. use Ramsey\Uuid\Uuid;
  12. use Ramsey\Uuid\UuidInterface;
  13. /**
  14.  * @see https://schema.org/Thing
  15.  *
  16.  * @author Jordi Fernandes Alves <jfadev@gmail.com>
  17.  */
  18. #[ORM\Entity]
  19. #[ApiResource(
  20.     iri'DemurrageStatus',
  21.     itemOperations: [
  22.         'get' => ['normalization_context' => ['groups' => 'demurrage_status:item:get''enable_max_depth' => true]],
  23.         'put' => [
  24.             'normalization_context' => ['groups' => 'demurrage_status:item:put''enable_max_depth' => true],
  25.             'denormalization_context' => ['groups' => 'demurrage_status:item:put''enable_max_depth' => true],
  26.         ],
  27.         'delete' => [],
  28.     ],
  29.     collectionOperations: [
  30.         'get' => [
  31.             'normalization_context' => [
  32.                 'groups' => ['demurrage_status:collection:get''createdAt'],
  33.                 'enable_max_depth' => true,
  34.             ],
  35.         ],
  36.         'post' => [
  37.             'normalization_context' => ['groups' => 'demurrage_status:collection:post''enable_max_depth' => true],
  38.             'denormalization_context' => ['groups' => 'demurrage_status:collection:post''enable_max_depth' => true],
  39.         ],
  40.     ],
  41. )]
  42. class DemurrageStatus
  43. {
  44.     use TimestampableEntity;
  45.     
  46.     #[ORM\Id]
  47.     #[ORM\GeneratedValue(strategy'NONE')]
  48.     #[ORM\Column(type'uuid'uniquetrue)]
  49.     private ?UuidInterface $id null;
  50.     #[ORM\Column(type'string'nullablefalse)]
  51.     #[ApiProperty(iri'https://schema.org/name')]
  52.     #[Assert\Type('string')]
  53.     #[Assert\NotBlank]
  54.     #[Groups(['demurrage_status:collection:get''demurrage_status:collection:post''demurrage_status:item:get''demurrage_status:item:put'])]
  55.     private ?string $statusName null;
  56.     #[ORM\OneToOne(targetEntity'App\Entity\Contract')]
  57.     #[ORM\JoinColumn(nullablefalse)]
  58.     #[ApiProperty(iri'https://schema.org/Contract')]
  59.     #[Groups(['demurrage_status:collection:get''demurrage_status:collection:post''demurrage_status:item:get''demurrage_status:item:put'])]
  60.     #[Assert\NotNull]
  61.     private ?Contract $relatedContract null;
  62.     #[ORM\Column(type'datetime'nullablefalse)]
  63.     #[ApiProperty(iri'https://schema.org/DateTime')]
  64.     #[Assert\Type('\DateTimeInterface')]
  65.     #[Assert\NotNull]
  66.     #[Groups(['demurrage_status:collection:get''demurrage_status:collection:post''demurrage_status:item:get''demurrage_status:item:put'])]
  67.     private ?\DateTime $statusDate null;
  68.     public function __construct()
  69.     {
  70.         $this->id Uuid::uuid4();
  71.     }
  72.     public function getId(): ?UuidInterface
  73.     {
  74.         return $this->id;
  75.     }
  76.     public function setStatusName(?string $statusName): void
  77.     {
  78.         $this->statusName $statusName;
  79.     }
  80.     public function getStatusName(): ?string
  81.     {
  82.         return $this->statusName;
  83.     }
  84.     public function setRelatedContract(?Contract $relatedContract): void
  85.     {
  86.         $this->relatedContract $relatedContract;
  87.     }
  88.     public function getRelatedContract(): ?Contract
  89.     {
  90.         return $this->relatedContract;
  91.     }
  92.     public function setStatusDate(?\DateTime $statusDate): void
  93.     {
  94.         $this->statusDate $statusDate;
  95.     }
  96.     public function getStatusDate(): ?\DateTime
  97.     {
  98.         return $this->statusDate;
  99.     }
  100. }