"""
04단계 매칭 설정·메타 컬럼·프로필 피처 목록.
"""

from __future__ import annotations

from deepcoin.analysis.general_analysis_core import ga_col, interval_tf_prefix
from deepcoin.paths import (
    ANALYSIS_TRADES_CSV,
    MATCHING_BACKTEST_HTML,
    MATCHING_FIRE_OUTCOMES,
    MATCHING_GT_OVERLAP,
    MATCHING_MATCHED_RULES,
    MATCHING_RULE_CANDIDATES,
    MATCHING_RULE_FIRES,
)

META_COLS: tuple[str, ...] = (
    "trade_idx",
    "dt",
    "action",
    "price",
    "weight",
    "leg_id",
    "memo",
)

# 04-1 기본 폴백 (03c gt_mtf_profile.json 없을 때만 사용)
BUY_PROFILE_FEATURES: tuple[str, ...] = (
    "m3_bb_pos",
    "m3_RSI",
    "m3_stoch_k",
    "m3_macd_hist",
    "m15_RSI",
    "m30_RSI",
    "m60_RSI",
    "ga_align_timing_buy_score",
    "ga_align_trend_score",
    "ga_align_rsi_oversold_tf",
    f"{interval_tf_prefix(60)}_{ga_col('struct_trend')}",
    f"{interval_tf_prefix(1440)}_RSI",
)

SELL_PROFILE_FEATURES: tuple[str, ...] = (
    "m3_bb_pos",
    "m3_RSI",
    "m3_stoch_k",
    "m3_macd_hist",
    "m15_RSI",
    "m30_RSI",
    "m60_RSI",
    "ga_align_timing_sell_score",
    "ga_align_trend_score",
    "ga_align_rsi_overbought_tf",
    f"{interval_tf_prefix(60)}_{ga_col('struct_trend')}",
    f"{interval_tf_prefix(1440)}_RSI",
)

__all__ = [
    "ANALYSIS_TRADES_CSV",
    "META_COLS",
    "BUY_PROFILE_FEATURES",
    "SELL_PROFILE_FEATURES",
    "MATCHING_RULE_CANDIDATES",
    "MATCHING_RULE_FIRES",
    "MATCHING_FIRE_OUTCOMES",
    "MATCHING_MATCHED_RULES",
    "MATCHING_BACKTEST_HTML",
    "MATCHING_GT_OVERLAP",
]
