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 MainOrderStatusEnum {

    /**
     * 未进行
     */
    NOT_STARTED(0, "未进行"),

    /**
     * 进行中
     */
    PROCESSING(1, "进行中"),

    /**
     * 待确认
     */
    WAIT_CONFIRM(4, "待确认"),
    /**
     * 已完成
     */
    COMPLETED(2, "已完成"),

    /**
     * 订单取消
     */
    CANCELED(3, "已取消"),
    ;


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

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

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

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