package com.yuchen.saas.payment.api.enums.allinpay;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

/** 通联支付交易类型编码
 * @author zhouhanwei
 * @create 2023/11/10 16:03
 */
@Getter
@AllArgsConstructor
public enum AllInPayTrxCodeEnum {
    /**
     VSP501	微信支付
     VSP502	微信支付撤销
     VSP503	微信支付退款
     VSP511	支付宝支付
     VSP512	支付宝支付撤销
     VSP513	支付宝支付退款
     VSP541	扫码支付
     VSP542	扫码撤销
     VSP543	扫码退货
     VSP551	银联扫码支付
     VSP552	银联扫码撤销
     VSP553	银联扫码退货
     VSP907	差错借记调整
     VSP908	差错贷记调整
     VSP611	数字货币支付
     VSP612	数字货币撤销
     VSP613	数字货币退货
     VSP621	分期支付
     VSP622	分期撤销
     VSP623	分期退货
     300002	充值
     */
    VSP501("VSP501", "微信支付"),
    VSP502("VSP502", "微信支付撤销"),
    VSP503("VSP503", "微信支付退款"),
    VSP511("VSP511", "支付宝支付"),
    VSP512("VSP512", "支付宝支付撤销"),
    VSP513("VSP513", "支付宝支付退款"),
    VSP541("VSP541", "扫码支付"),
    VSP542("VSP542", "扫码撤销"),
    VSP543("VSP543", "扫码退货"),
    VSP551("VSP551", "银联扫码支付"),
    VSP552("VSP552", "银联扫码撤销"),
    VSP553("VSP553", "银联扫码退货"),
    VSP907("VSP907", "差错借记调整"),
    VSP908("VSP908", "差错贷记调整"),
    VSP611("VSP611", "数字货币支付"),
    VSP612("VSP612", "数字货币撤销"),
    VSP613("VSP613", "数字货币退货"),
    VSP621("VSP621", "分期支付"),
    VSP622("VSP622", "分期撤销"),
    VSP623("VSP623", "分期退货"),

    VSP300002("300002", "充值"),

    ;

    private final String code;
    private final String desc;

    public static String getEnumDesc(String code) {
        if (StrUtil.isNotBlank(code)) {
            for (AllInPayTrxCodeEnum e : AllInPayTrxCodeEnum.values()) {
                if (e.getCode().equals(code)) {
                    return e.getDesc();
                }
            }
        }
        return null;
    }
}
