# app/src/trading/strategies/signals.py

from __future__ import annotations

from dataclasses import dataclass
from enum import StrEnum


class SignalType(StrEnum):
    # купить
    BUY = "BUY"

    # продать
    SELL = "SELL"

    # ничего не делать
    HOLD = "HOLD"


@dataclass(slots=True)
class SignalResult:
    # итоговый сигнал стратегии
    signal: SignalType

    # человекочитаемая причина сигнала
    reason: str

    # уверенность стратегии от 0.0 до 1.0
    confidence: float = 0.0

    # дополнительные данные стратегии для логов / отладки
    payload: dict | None = None