src/Entity/Sync/SyncableResource.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Sync;
  3. use App\Repository\Sync\SyncableResourceRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampInterface;
  8. use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampTrait;
  9. #[
  10.     ORM\Entity(repositoryClass: SyncableResourceRepository::class),
  11.     ORM\UniqueConstraint(fields: ['resourceType', 'resourceId']),
  12.     ORM\Index(fields: ['resourceType']),
  13.     ORM\Index(fields: ['resourceId']),
  14.     ORM\Index(fields: ['label']),
  15.     ORM\Table(name: 'syncable_resource')
  16. ]
  17. class SyncableResource implements TimestampInterface
  18. {
  19.     use TimestampTrait;
  20.     #[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
  21.     private ?int $id = null;
  22.     #[ORM\Column(type: 'string', length: 255, nullable: false)]
  23.     private ?string $resourceType = null;
  24.     #[ORM\Column(type: 'string', length: 255, nullable: false)]
  25.     private ?string $resourceId = null;
  26.     #[ORM\Column(type: 'string', length: 255, nullable: false)]
  27.     private ?string $label = null;
  28.     #[ORM\Column(type: 'datetime', nullable: true)]
  29.     private ?\DateTime $deletedAt = null;
  30.     #[ORM\Column(type: 'datetime', nullable: true)]
  31.     private ?\DateTime $lastSyncRequestedAt = null;
  32.     #[ORM\OneToMany(mappedBy: 'syncableResource', targetEntity: SyncableResourceAppState::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
  33.     private Collection $syncableResourceAppStates;
  34.     public function __construct() {
  35.         $this->syncableResourceAppStates = new ArrayCollection();
  36.     }
  37.     public function getId(): ?int
  38.     {
  39.         return $this->id;
  40.     }
  41.     public function getResourceType(): ?string
  42.     {
  43.         return $this->resourceType;
  44.     }
  45.     public function setResourceType(?string $resourceType): SyncableResource
  46.     {
  47.         $this->resourceType = $resourceType;
  48.         return $this;
  49.     }
  50.     public function getResourceId(): ?string
  51.     {
  52.         return $this->resourceId;
  53.     }
  54.     public function setResourceId(string|int|null $resourceId): SyncableResource
  55.     {
  56.         $this->resourceId = (string) $resourceId;
  57.         return $this;
  58.     }
  59.     public function getLabel(): ?string
  60.     {
  61.         return $this->label;
  62.     }
  63.     public function setLabel(?string $label): SyncableResource
  64.     {
  65.         $this->label = substr((string) $label, 0, 255);
  66.         return $this;
  67.     }
  68.     public function getDeletedAt(): ?\DateTime
  69.     {
  70.         return $this->deletedAt;
  71.     }
  72.     public function setDeletedAt(?\DateTime $deletedAt): SyncableResource
  73.     {
  74.         $this->deletedAt = $deletedAt;
  75.         return $this;
  76.     }
  77.     public function getLastSyncRequestedAt(): ?\DateTime
  78.     {
  79.         return $this->lastSyncRequestedAt;
  80.     }
  81.     public function setLastSyncRequestedAt(?\DateTime $lastSyncRequestedAt): SyncableResource
  82.     {
  83.         $this->lastSyncRequestedAt = $lastSyncRequestedAt;
  84.         return $this;
  85.     }
  86.     public function getSyncableResourceAppStates(): Collection
  87.     {
  88.         return $this->syncableResourceAppStates;
  89.     }
  90.     public function setSyncableResourceAppStates(Collection $syncableResourceAppStates): SyncableResource
  91.     {
  92.         $this->syncableResourceAppStates = $syncableResourceAppStates;
  93.         return $this;
  94.     }
  95. }