package com.jkcredit.invoice.hub.util;

import com.jkcredit.invoice.hub.enums.CommonEnumStatus;
import com.jkcredit.invoice.hub.enums.base.EnumStatus;
import lombok.NoArgsConstructor;


@NoArgsConstructor
public final class EnumStatusUtils {

    public static EnumStatus getStatusByValue(Class<?> enums, Integer value) {
        if (enums.isEnum()) {
            Object[] statuses = enums.getEnumConstants();

            for (Object o : statuses) {
                EnumStatus status = (EnumStatus) o;
                if (status.getValue().equals(value)) {
                    return status;
                }
            }
        }

        return CommonEnumStatus.UNKNOWN_STATUS;
    }

    public static EnumStatus getStatusByDesc(Class<?> enums, String desc) {
        if (enums.isEnum()) {
            Object[] statuses = enums.getEnumConstants();

            for (Object o : statuses) {
                EnumStatus status = (EnumStatus) o;
                if (status.getDesc().equals(desc)) {
                    return status;
                }
            }
        }

        return CommonEnumStatus.UNKNOWN_STATUS;
    }

}
