package com.yc.ship.module.trade.enums;


import com.yc.ship.framework.common.core.IntArrayValuable;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

import java.util.Arrays;

/**
 * 订单出行状态（根据门票状态判断）
 */
@Getter
@RequiredArgsConstructor
public enum TradeOrderTravelEnum implements IntArrayValuable {
    /*
      门票状态：
      A: 1待使用 2已取票 7已过期
      B: 3已核销 6逾期核销
      C: 5已退款
      D: 8部分核销
      E: 4退款中 == 原状态（不判断）

      9：部分退款
           子票有核销，该票等于8部分核销
           没有则等于1待使用
     */

    /**
     * 全是退款C状态(以后统计排除C）
     */
    Cancelled(0, "已取消"),
    /**
     * 全是未使用A状态
     */
    Not_Traveled(1, "未出行"),
    /**
     * 未使用A状态的数量>0，含有核销B或D
     */
    Part_Traveled(2, "部分出行"),
    /**
     * 只含有核销B或D
     */
    Traveled(3, "已出行"),
    /**
     * 全是核销B状态
     */
    Finished(4, "已结束");

    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TradeOrderTravelEnum::getStatus).toArray();

    /**
     * 状态
     */
    private final Integer status;
    /**
     * 状态名称
     */
    private final String name;

    @Override
    public int[] array() {
        return ARRAYS;
    }

}
