package pwc.taxtech.atms.dto;

import org.apache.commons.lang3.StringUtils;

public class ApiResultDto {
    private int code;
    private Object data;
    private String message;

    public static final int SUCCESS = 0; //接口成功code
    public static final int FAILED = -1; //通用失败code

    /**
     * 返回成功
     *
     * @param data data
     * @return ApiResultDto
     */
    public static ApiResultDto success(Object data) {
        return new ApiResultDto(SUCCESS, data, StringUtils.EMPTY);
    }

    /**
     * 返回成功
     *
     * @return ApiResultDto
     */
    public static ApiResultDto success() {
        return new ApiResultDto(SUCCESS, null, StringUtils.EMPTY);
    }

    /**
     * 返回失败
     *
     * @param code    fail code
     * @param message msg
     * @return ApiResultDto
     */
    public static ApiResultDto fail(int code, String message) {
        return new ApiResultDto(code, null, message);
    }

    /**
     * 返回失败
     *
     * @param message msg
     * @return ApiResultDto
     */
    public static ApiResultDto fail(String message) {
        return new ApiResultDto(FAILED, null, message);
    }

    public static ApiResultDto fail() {
        return new ApiResultDto(FAILED, null, StringUtils.EMPTY);
    }

    public ApiResultDto() {
    }

    public ApiResultDto(int code, Object data, String message) {
        this.code = code;
        this.data = data;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}