44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
"""
|
|
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}')>"
|