"""
Tool_OCR - Translation Config Model (RESERVED)
Reserved for future translation feature implementation
"""

from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, JSON
from sqlalchemy.orm import relationship
from datetime import datetime

from app.core.database import Base


class TranslationConfig(Base):
    """
    Translation configuration (RESERVED for future implementation)

    This table is created but not actively used until translation feature is implemented.
    """

    __tablename__ = "paddle_ocr_translation_configs"

    id = Column(Integer, primary_key=True, index=True)
    user_id = Column(Integer, ForeignKey("paddle_ocr_users.id", ondelete="CASCADE"), nullable=False, index=True)

    source_lang = Column(String(20), nullable=False)  # ch, en, japan, korean, etc.
    target_lang = Column(String(20), nullable=False)  # en, ch, japan, korean, etc.

    # Translation engine type: "offline" (argostranslate), "ernie", "google", "deepl"
    engine_type = Column(String(50), nullable=False, default="offline")

    # Engine-specific configuration stored as JSON
    # For offline (argostranslate): {"model_path": "/path/to/model"}
    # For API-based: {"api_key": "xxx", "endpoint": "https://..."}
    engine_config = Column(JSON, nullable=True)

    created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
    updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)

    # Relationships
    user = relationship("User", back_populates="translation_configs")

    def __repr__(self):
        return f"<TranslationConfig(id={self.id}, {self.source_lang}->{self.target_lang}, engine='{self.engine_type}')>"
