package com.aircraft.modules.order.domain.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 *
 * 订单结算状态枚举类
 *
 * @author chenxiky
 * @version 1.0.0
 * @since 2025/7/12
 */
@Getter
@AllArgsConstructor
public enum OrderSettlementStatusEnum {
    /**
     * 未结算
     */
    NOT_SETTLED(0, "未结算"),
    /**
     * 结算中
     */
    SETTLING(1, "结算中"),
    /**
     * 结算完成
     */
    SETTLED(2, "结算完成"),
    ;

    /**
     * code值
     */
    private final Integer code;

    /**
     * 描述
     */
    private final String description;

    /**
     * 根据code获取枚举
     *
     * @param code 编码
     * @return  {@link OrderSettlementStatusEnum}
     */
    public static OrderSettlementStatusEnum getInstance(Integer code) {

        return Arrays.stream(OrderSettlementStatusEnum.values())
                .filter(o -> o.getCode().equals(code)).findFirst().orElse(null);
    }
}
