package com.bizzan.bitrade.constant;

import com.bizzan.bitrade.core.BaseEnum;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 链上充值订单状态枚举
 *
 * @author auto
 * @date 2026-05-13
 */
@AllArgsConstructor
@Getter
public enum CoinRechargeOrderStatus implements BaseEnum {

    /**
     * 待支付：订单已创建，等待用户通过第三方钱包发起转账
     */
    PENDING(0, "待支付"),

    /**
     * 待链上确认：用户已提交交易 hash，等待链上确认到账
     */
    CONFIRMING(1, "待链上确认"),

    /**
     * 已完成：链上确认到账，余额已入账
     */
    COMPLETED(2, "已完成"),

    /**
     * 已取消：订单超时或用户主动取消
     */
    CANCELLED(3, "已取消"),

    /**
     * 失败：链上确认失败或 hash 无效
     */
    FAILED(4, "失败");

    /** 状态码 */
    private final int code;

    /** 状态描述 */
    private final String desc;

    @Override
    @JsonValue
    public int getOrdinal() {
        return this.ordinal();
    }
}
