src/Entity/Chat/ConversationUser.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Chat;
  3. use App\Entity\Account\User;
  4. use App\Enum\ConversationUserRole;
  5. use App\Repository\Chat\ConversationUserRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Drosalys\Bundle\ApiBundle\Serializer\Attributes\IdGroups;
  8. use Symfony\Component\Serializer\Annotation as Serial;
  9. #[ORM\Entity(repositoryClassConversationUserRepository::class)]
  10. #[ORM\Table(name'chat_conversation_users')]
  11. #[ORM\HasLifecycleCallbacks]
  12. #[ORM\UniqueConstraint(name'single_conversation_user'columns: ['conversation_id''user_id'])]
  13. class ConversationUser
  14. {
  15.     #[ORM\Id]
  16.     #[ORM\GeneratedValue]
  17.     #[ORM\Column(type'integer')]
  18.     #[Serial\Groups(groups: ['Conversation''Identifier'])]
  19.     private ?int $id null;
  20.     #[ORM\ManyToOne(targetEntityMessage::class)]
  21.     #[ORM\JoinColumn(nullabletrueonDelete'SET NULL')]
  22.     #[Serial\Groups(groups: ['Conversation''Message'])]
  23.     private ?Message $lastSeenMessage null;
  24.     #[ORM\ManyToOne(targetEntityConversation::class, inversedBy'conversationUsers')]
  25.     #[ORM\JoinColumn(nullablefalseonDelete'CASCADE')]
  26.     #[IdGroups(groups: ['Conversation'])]
  27.     private ?Conversation $conversation null;
  28.     #[ORM\Column(type'integer')]
  29.     #[Serial\Groups(groups: ['Conversation'])]
  30.     private ?int $role ConversationUserRole::USER;
  31.     #[ORM\ManyToOne(targetEntityUser::class, cascade: ['persist'], inversedBy'conversationUsers')]
  32.     #[ORM\JoinColumn(nullablefalseonDelete'CASCADE')]
  33.     #[Serial\Groups(groups: ['Conversation'])]
  34.     #[IdGroups(groups: ['PostCanal'])]
  35.     #[Serial\Context(
  36.         context: ['entity_id_groups' => true]
  37.     )]
  38.     private ?User $user null;
  39.     public function getId(): ?int
  40.     {
  41.         return $this->id;
  42.     }
  43.     public function getLastSeenMessage(): ?Message
  44.     {
  45.         return $this->lastSeenMessage;
  46.     }
  47.     public function setLastSeenMessage(?Message $lastSeenMessage): self
  48.     {
  49.         $this->lastSeenMessage $lastSeenMessage;
  50.         return $this;
  51.     }
  52.     public function getConversation(): ?Conversation
  53.     {
  54.         return $this->conversation;
  55.     }
  56.     public function setConversation(?Conversation $conversation): self
  57.     {
  58.         $this->conversation $conversation;
  59.         return $this;
  60.     }
  61.     public function getRole(): ?int
  62.     {
  63.         return $this->role;
  64.     }
  65.     public function setRole(int $role): self
  66.     {
  67.         $this->role $role;
  68.         return $this;
  69.     }
  70.     public function getUser(): ?User
  71.     {
  72.         return $this->user;
  73.     }
  74.     public function setUser(?User $user): self
  75.     {
  76.         $this->user $user;
  77.         return $this;
  78.     }
  79. }