src/JanusHercules/TodosDemo/Domain/Entity/TodoItem.php line 12

Open in your IDE?
  1. <?php
  2. namespace JanusHercules\TodosDemo\Domain\Entity;
  3. use App\Entity\User;
  4. use App\Utility\DatabaseIdGenerator;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. #[ORM\Entity]
  8. #[ORM\Table(name: 'todo_items')]
  9. class TodoItem
  10. {
  11. public function __construct(
  12. User $user,
  13. string $text
  14. ) {
  15. $this->user = $user;
  16. $this->text = $text;
  17. $this->isDone = false;
  18. }
  19. #[ORM\Id]
  20. #[ORM\GeneratedValue(strategy: 'CUSTOM')]
  21. #[ORM\CustomIdGenerator(class: DatabaseIdGenerator::class)]
  22. #[ORM\Column(
  23. type: Types::GUID,
  24. unique: true
  25. )]
  26. private ?string $id = null;
  27. public function getId(): ?string
  28. {
  29. return $this->id;
  30. }
  31. #[ORM\ManyToOne(
  32. targetEntity: User::class,
  33. cascade: ['persist']
  34. )]
  35. #[ORM\JoinColumn(
  36. name: 'users_id',
  37. referencedColumnName: 'id',
  38. nullable: true,
  39. onDelete: 'CASCADE'
  40. )]
  41. private User $user;
  42. public function getUser(): User
  43. {
  44. return $this->user;
  45. }
  46. #[ORM\Column(
  47. type: Types::STRING,
  48. length: 1024,
  49. nullable: false
  50. )]
  51. private string $text;
  52. public function getText(): string
  53. {
  54. return $this->text;
  55. }
  56. #[ORM\Column(
  57. type: Types::BOOLEAN,
  58. nullable: false
  59. )]
  60. private bool $isDone;
  61. public function isDone(): bool
  62. {
  63. return $this->isDone;
  64. }
  65. public function setIsDone(bool $isDone): void
  66. {
  67. $this->isDone = $isDone;
  68. }
  69. }