package com.jsowell.adapay.response;

import com.jsowell.common.enums.adapay.AdapayStatusEnum;
import com.jsowell.common.util.StringUtils;
import lombok.*;

/**
 * 汇付基础响应
 */
@Getter
@Setter
public class AdapayBaseResponse {
    // 是否 prod模式，true 是 prod模式，false 是 mock模式
    private String prod_mode;

    /**
     * 当前交易结果状态，参见 状态 说明
     * @see com.jsowell.common.enums.adapay.AdapayStatusEnum
     */
    private String status;

    private String error_code;
    private String error_msg;
    private String error_type;

    // 当发生参数错误时返回具体的参数名，便于定位错误原因，详见 错误
    private String invalid_param;

    public boolean isSuccess() {
        return StringUtils.equals(status, AdapayStatusEnum.SUCCEEDED.getValue());
    }

    public boolean isNotSuccess() {
        return !isSuccess();
    }

    public boolean isFailed() {
        return StringUtils.equals(status, AdapayStatusEnum.FAILED.getValue());
    }

    public boolean isNotFailed() {
        return !isFailed();
    }
}
