src/Domains/Word/Domain/Entity/Word.php line 13

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Domains\Word\Domain\Entity;
  4. use App\Domains\Word\Domain\Enum\Language;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. #[ORM\Entity]
  8. #[ORM\Table(name'word')]
  9. class Word
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\GeneratedValue]
  13.     #[ORM\Column(typeTypes::INTEGER)]
  14.     private ?int $id null;
  15.     #[ORM\Column(typeTypes::STRINGlength255)]
  16.     private string $word;
  17.     #[ORM\Column(typeTypes::STRINGlength255)]
  18.     private string $translation;
  19.     #[ORM\Column(typeTypes::TEXT)]
  20.     private string $meaning;
  21.     #[ORM\Column(name'`usage`'typeTypes::TEXT)]
  22.     private string $usage;
  23.     #[ORM\Column(typeTypes::TEXT)]
  24.     private string|null $synonyms;
  25.     #[ORM\Column(typeTypes::TEXT)]
  26.     private string|null $examples;
  27.     #[ORM\Column(typeTypes::STRINGenumTypeLanguage::class)]
  28.     private Language $languageFrom;
  29.     #[ORM\Column(typeTypes::STRINGenumTypeLanguage::class)]
  30.     private Language $languageTo;
  31.     #[ORM\Column(name'created_at'type'datetime_immutable')]
  32.     private \DateTimeImmutable $createdAt;
  33.     #[ORM\Column(typeTypes::STRINGlength255nullabletrue)]
  34.     private string|null $imageFilename null;
  35.     public function __construct(
  36.         string $word,
  37.         string $translation,
  38.         string $meaning,
  39.         string $usage,
  40.         array $synonyms,
  41.         array $examples,
  42.         Language $languageFrom,
  43.         Language $languageTo,
  44.         string|null $imageFilename null
  45.     ) {
  46.         $this->word $word;
  47.         $this->translation $translation;
  48.         $this->meaning $meaning;
  49.         $this->usage $usage;
  50.         $this->synonyms json_encode($synonyms);
  51.         $this->examples json_encode($examples);
  52.         $this->languageFrom $languageFrom;
  53.         $this->languageTo $languageTo;
  54.         $this->imageFilename $imageFilename;
  55.         $this->createdAt = new \DateTimeImmutable();
  56.     }
  57.     public function getId(): ?int
  58.     {
  59.         return $this->id;
  60.     }
  61.     public function getWord(): string
  62.     {
  63.         return $this->word;
  64.     }
  65.     public function getTranslation(): string
  66.     {
  67.         return $this->translation;
  68.     }
  69.     public function getMeaning(): string
  70.     {
  71.         return $this->meaning;
  72.     }
  73.     public function getUsage(): string
  74.     {
  75.         return $this->usage;
  76.     }
  77.     public function getSynonyms(): array
  78.     {
  79.         return $this->synonyms json_decode($this->synonymstrue) : [];
  80.     }
  81.     public function getExamples(): array
  82.     {
  83.         return $this->examples json_decode($this->examplestrue) : [];
  84.     }
  85.     public function getLanguageFrom(): Language
  86.     {
  87.         return $this->languageFrom;
  88.     }
  89.     public function getLanguageTo(): Language
  90.     {
  91.         return $this->languageTo;
  92.     }
  93.     public function getCreatedAt(): \DateTimeImmutable
  94.     {
  95.         return $this->createdAt;
  96.     }
  97.     public function getImageFilename(): string|null
  98.     {
  99.         return $this->imageFilename;
  100.     }
  101.     public function setImageFilename(string|null $imageFilename): void
  102.     {
  103.         $this->imageFilename $imageFilename;
  104.     }
  105. }