package com.sckw.core.model.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.EnumSet;

/**
 * @author lfdc
 * @desc 车辆运单状态枚举
 * @date 2023-07-14 14:07:23
 */
@Getter
@AllArgsConstructor
public enum CarWaybillV1Enum {

    /**
     * 已接单
     */
    PENDING_VEHICLE(1,  "已接单"),
    /**
     * 到达装货点
     */
    REFUSE_TRAFFIC(5, "到达装货点"),
    /**
     * 已装货
     */
    EXIT_COMPLETED(10,  "已装货"),


    /**
     * 空载待离场
     */
    EMPTY_WAIT_LEAVE(11, "空载待离场"),

    /**
     * 待离场
     */
    WAIT_LEAVE(12, "待离场"),

    /**
     * 卸货中
     */
    UNLOADING(13, "卸货中"),

    /**
     * 待放行
     */
    WAIT_RELEASE(14, "待放行"),

    /**
     * 补货中
     */
    REPLENISHING(15, "补货中"),

    /**
     * 补货完成
     */
    REPLENISH_FINISH(16, "补货完成"),

    /**
     * 已放行未离场
     */
    RELEASED_NOT_EXITED(17, "已放行未离场"),


    /**
     * 已离场
     */
    WAIT_LOADING(18,  "已离场"),

    /**
     * 到达卸货点 (只有友盛在用)
     */
    UNLOADING_POINT(19, "到达卸货点"),

    /**
     * 卸货待离场 (只有友盛在用)
     */
    UNLOADING_WAIT_LEAVE(20, "卸货待离场"),

    /**
     * 卸货待放行 (只有友盛在用)
     */
    UNLOADING_WAIT_RELEASE(21, "卸货待放行"),

    /**
     * 卸货已放行待离场 (只有友盛在用)  弃用
     */
//    UNLOADING_RELEASED_WAIT_LEAVE(22, "卸货已放行待离场"),

    /**
     * 已卸货
     */
    COMPLETION_LOADING(23,  "已卸货"),
    /**
     * 已完成
     */
    COMPLETED(25,  "已完成"),
    /**
     * 审核驳回
     */
    REVIEW_REJECTION(30,  "审核驳回"),

    /**
     * 已作废
     */
    CANCELLED(99, "已取消"),

    ;

    private final Integer code;

    private final String destination;


    public static String geDesc(Integer status) {
        if (status == null) {
            return null;
        }
        for (CarWaybillV1Enum carWaybillV1Enum : EnumSet.allOf(CarWaybillV1Enum.class)) {
            if (carWaybillV1Enum.code.equals(status)) {
                return carWaybillV1Enum.destination;
            }
        }
        return null;
    }

}
