<?php
namespace App\Entity;
use App\Repository\TranslationRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: TranslationRepository::class)]
#[ORM\Table(name: 'translation')]
#[ORM\Index(
name: 'translation_lookup_idx',
columns: ['entity_type', 'entity_id', 'key_name', 'locale']
)]
class Translation
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
// Module ERP (catalogue, user, stock, etc.)
#[ORM\Column(length: 100)]
private string $entityType;
// ID de l’objet (ex: catalogue id = 5)
#[ORM\Column(nullable: true)]
private ?int $entityId = null;
// Clé de traduction (name, description, title...)
#[ORM\Column(length: 255)]
private string $keyName;
// Langue (fr, en, etc.)
#[ORM\Column(length: 10)]
private string $locale;
// Contenu traduit
#[ORM\Column(type: 'text')]
private string $content;
// Domaine optionnel (messages, catalogue, security...)
#[ORM\Column(length: 100, nullable: true)]
private ?string $domain = 'messages';
// =========================
// GETTERS / SETTERS
// =========================
public function getId(): ?int
{
return $this->id;
}
public function getEntityType(): string
{
return $this->entityType;
}
public function setEntityType(string $entityType): self
{
$this->entityType = $entityType;
return $this;
}
public function getEntityId(): ?int
{
return $this->entityId;
}
public function setEntityId(?int $entityId): self
{
$this->entityId = $entityId;
return $this;
}
public function getKeyName(): string
{
return $this->keyName;
}
public function setKeyName(string $keyName): self
{
$this->keyName = $keyName;
return $this;
}
public function getLocale(): string
{
return $this->locale;
}
public function setLocale(string $locale): self
{
$this->locale = $locale;
return $this;
}
public function getContent(): string
{
return $this->content;
}
public function setContent(string $content): self
{
$this->content = $content;
return $this;
}
public function getDomain(): ?string
{
return $this->domain;
}
public function setDomain(?string $domain): self
{
$this->domain = $domain;
return $this;
}
}