# /opt/docker/dev/service_finder/backend/app/services/translation.py
from sqlalchemy import String, Text, Boolean, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column
from app.db.base_class import Base 

class Translation(Base):
    """ 
    Központi i18n adattábla. 
    Minden rendszerüzenet és frontend felirat forrása.
    """
    __tablename__ = "translations"
    __table_args__ = (
        UniqueConstraint("key", "lang_code", name="uq_translation_key_lang"),
    )

    id: Mapped[int] = mapped_column(primary_key=True, index=True)
    
    # A kulcs pontozott formátumú (pl: 'DASHBOARD.STATS.TITLE')
    key: Mapped[str] = mapped_column(String(150), nullable=False, index=True)
    
    # ISO kód (pl: 'hu', 'en', 'de')
    lang_code: Mapped[str] = mapped_column(String(5), nullable=False, index=True)
    
    # A tényleges lefordított szöveg
    value: Mapped[str] = mapped_column(Text, nullable=False)
    
    # Élesítési állapot (Draft/Published)
    is_published: Mapped[bool] = mapped_column(Boolean, default=False, index=True)