package com.wms_main.model.dto.response.wms;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms_main.constant.enums.wms.WmsApiResponseCodeEnums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * WMS基本响应信息
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseWmsApiResponse {
    /**
     * 响应码
     */
    @JsonProperty("code")
    private Integer code;
    /**
     * 响应信息
     */
    @JsonProperty("message")
    private String message;

    /**
     * 返回成功---无参
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse success() {
        return success("成功。");
    }

    /**
     * 返回成功
     * @param message 自定义响应信息
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse success(String message) {
        return new BaseWmsApiResponse(WmsApiResponseCodeEnums.SUCCESS.getCode(), message);
    }

    /**
     * 返回失败---无参
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse error() {
        return error("失败。");
    }

    /**
     * 返回失败---无参
     * @param message 自定义响应信息
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse error(String message) {
        return new BaseWmsApiResponse(WmsApiResponseCodeEnums.ERROR.getCode(), message);
    }

    /**
     * 返回警告---无参
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse warn() {
        return warn("警告。");
    }

    /**
     * 返回警告---无参
     * @param message 自定义响应信息
     * @return BaseWmsApiResponse
     */
    public static BaseWmsApiResponse warn(String message) {
        return new BaseWmsApiResponse(WmsApiResponseCodeEnums.WARNING.getCode(), message);
    }
}
