src/Entity/Account/Notification.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Account;
  3. use App\Entity\App\App;
  4. use App\Entity\Sync\SyncableInterface;
  5. use App\Repository\Account\NotificationRepository;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Drosalys\Bundle\ApiBundle\Serializer\Attributes\IdGroups;
  9. use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampTrait;
  10. use Nellapp\Bundle\SDKBundle\Auth\Entity\UserInterface;
  11. use Nellapp\Bundle\SDKBundle\Notification\Entity\NotificationInterface;
  12. use Nellapp\Bundle\SDKBundle\Notification\Entity\NotificationMethodTrait;
  13. use Nellapp\Bundle\SDKBundle\Sync\EntityKeys;
  14. use Symfony\Component\Serializer\Annotation as Serial;
  15. #[ORM\Entity(repositoryClassNotificationRepository::class), ORM\Table(name'account_notifications')]
  16. class Notification implements NotificationInterfaceSyncableInterface
  17. {
  18.     use TimestampTrait;
  19.     use NotificationMethodTrait;
  20.     #[
  21.         ORM\IdORM\GeneratedValue(strategy'NONE'),
  22.         ORM\Column(type'string'length36)
  23.     ]
  24.     #[Serial\Groups(['Sync'])]
  25.     private ?string $id null;
  26.     #[ORM\Column(type'string')]
  27.     #[Serial\Groups(['Sync'])]
  28.     protected ?string $label null;
  29.     #[ORM\Column(type'string')]
  30.     #[Serial\Groups(['Sync'])]
  31.     protected ?string $type null;
  32.     #[ORM\Column(type'string')]
  33.     #[Serial\Groups(['Sync'])]
  34.     protected ?string $status null;
  35.     #[ORM\Column(type'text'nullabletrue)]
  36.     #[Serial\Groups(['Sync'])]
  37.     protected ?string $details null;
  38.     #[ORM\ManyToOne(targetEntityUserInterface::class)]
  39.     #[ORM\JoinColumn(onDelete"CASCADE")]
  40.     #[IdGroups(groups: ['Sync'])] 
  41.     protected UserInterface $user;
  42.     #[ORM\Column(typeTypes::JSONnullabletrue)]
  43.     #[Serial\Groups(['Sync'])]
  44.     protected ?array $payload = [];
  45.     #[ORM\ManyToOne(targetEntityApp::class)]
  46.     #[ORM\JoinColumn(nullabletrueonDelete"CASCADE")]
  47.     protected ?App $app null;
  48.     public function getApp(): ?App
  49.     {
  50.         return $this->app;
  51.     }
  52.     public function setApp(?App $app): static
  53.     {
  54.         $this->app $app;
  55.         return $this;
  56.     }
  57.     public static function getSyncKey(): string
  58.     {
  59.         return EntityKeys::USER_NOTIFICATION;
  60.     }
  61.     public function getSyncDisplayLabel(): string
  62.     {
  63.         return $this->getLabel() ?? 'notification';
  64.     }
  65. }