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. }