package com.spot.enums;

/**
 * 账户流水是否有总金额变动枚举
 *
 * @author jean
 * @date 2026-05-06
 */
public enum AccountRecordIsChanges {

    /**
     * 0 - 否（冻结/解冻操作，总余额不变）
     */
    NO(0, "否"),

    /**
     * 1 - 是（充值/提现/成交等操作，总余额发生变化）
     */
    YES(1, "是");

    /** 变动标识码（数据库存储值） */
    private final Integer code;

    /** 变动标识描述（中文） */
    private final String description;

    AccountRecordIsChanges(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    public Integer getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 根据变动标识码获取枚举
     *
     * @param code 变动标识码
     * @return 枚举值
     */
    public static AccountRecordIsChanges fromCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (AccountRecordIsChanges isChanges : values()) {
            if (isChanges.code.equals(code)) {
                return isChanges;
            }
        }
        throw new IllegalArgumentException("未知的账户流水变动标识码: " + code);
    }

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