package com.yuchen.saas.park.api.enums.property;

import lombok.Getter;
import org.nest.springwrap.core.log.exception.ServiceException;

import java.util.ArrayList;
import java.util.List;

@Getter
public enum PayStatusEnum {
    NO_PAY(1, "未收费"),
    PART_PAY(2, "部份收费"),
    ARREARS(3, "已欠费"),
    PAID(4, "已收费"),
    REFUND(5, "已退费"),
    ;

    private final int value;
    private final String desc;

    PayStatusEnum(int i, String desc) {
        value = i;
        this.desc = desc;
    }

    public static PayStatusEnum convert(int intValue) {
        PayStatusEnum[] allValues = PayStatusEnum.values();
        for(int i = 0; i < allValues.length; i++) {
            if(allValues[i].value == intValue) {
                return allValues[i];
            }
        }
        throw new ServiceException("PayStatusEnum 非法枚举参数值");
    }

    public static List<Integer> listValue(PayStatusEnum... payStatusEnums) {
        List<Integer> payStatusList = new ArrayList<>();
        for (PayStatusEnum statusEnum: payStatusEnums) {
            payStatusList.add(statusEnum.getValue());
        }
        return payStatusList;
    }

    /**
     * 获取需要付款的状态
     * @return
     */
    public static List<Integer> getNeedPayStatus() {
        return listValue(PayStatusEnum.NO_PAY,PayStatusEnum.PART_PAY,PayStatusEnum.ARREARS);
    }

}
