"""
Exchange Rate Model - 환율 정보 저장
"""
from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean
from sqlalchemy.sql import func
from ..database import Base


class ExchangeRate(Base):
    """환율 정보 테이블"""
    __tablename__ = "exchange_rates"

    id = Column(Integer, primary_key=True, index=True)

    # 통화 정보
    currency_code = Column(String(10), unique=True, index=True)  # USD, MNT, RUB, CNY
    currency_name = Column(String(100))  # 미국 달러, 몽골 투그릭 등

    # 환율 정보 (한국수출입은행 기준)
    deal_base_rate = Column(Float)  # 매매기준율 (1 USD = X KRW)
    ttb_rate = Column(Float)  # 전신환(송금) 받을때
    tts_rate = Column(Float)  # 전신환(송금) 보낼때

    # 가중치 적용 환율
    weight_percent = Column(Float, default=0.0)  # 관리자 설정 가중치 (%)
    adjusted_rate = Column(Float)  # 가중치 적용된 환율

    # 메타 정보
    source_date = Column(String(20))  # 수출입은행 기준일 (예: 20241223)
    is_active = Column(Boolean, default=True)

    created_at = Column(DateTime(timezone=True), server_default=func.now())
    updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())


class ExchangeRateHistory(Base):
    """환율 변동 이력 테이블"""
    __tablename__ = "exchange_rate_history"

    id = Column(Integer, primary_key=True, index=True)

    currency_code = Column(String(10), index=True)
    deal_base_rate = Column(Float)
    source_date = Column(String(20))

    created_at = Column(DateTime(timezone=True), server_default=func.now())
