package com.market.enums;

/**
 * 行情机器人趋势方向枚举
 *
 * @author jean
 * @date 2026-05-11
 */
public enum RobotTrend {

    /**
     * 上涨趋势：默认 upProbability = 0.65，到达目标价后进入盘整
     */
    UP(1, "涨"),

    /**
     * 下跌趋势：默认 upProbability = 0.35，到达目标价后进入盘整
     */
    DOWN(2, "跌"),

    /**
     * 横盘震荡：upProbability 固定 0.50，不受目标价约束，永远保持 RUNNING
     */
    SIDEWAYS(3, "横盘");

    /** 趋势码（数据库存储值） */
    private final int code;

    /** 趋势描述 */
    private final String desc;

    RobotTrend(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    /**
     * 根据趋势码获取枚举
     *
     * @param code 趋势码
     * @return 对应枚举
     */
    public static RobotTrend fromCode(int code) {
        for (RobotTrend t : values()) {
            if (t.code == code) {
                return t;
            }
        }
        throw new IllegalArgumentException("未知趋势码: " + code);
    }

    @Override
    public String toString() {
        return String.format("%s(%d)", desc, code);
    }
}
