package com.ningdatech.kqapi.common.model;

import lombok.Getter;

/**
 * @description:
 * @author: liushuai
 * @date: 2022/3/25 11:31
 */
@Getter
public enum Status implements ApiStatus {
    /**
     * 正常
     */
    OK(200, "正常"),
    /**
     * 请求错误
     */
    BAD_REQUEST(400, "请求错误"),
    /**
     * Unauthorized
     */
    NO_AUTHORIZATION(401, "未经授权的"),
    /**
     * 服务器解析不到用户请求的服务名称
     */
    REQUEST_NOT_FOUND(404, "服务不存在"),
    /**
     * 未知异常
     */
    UNKNOWN_ERROR(500, "服务器内部错误"),
    /**
     * 未定义异常
     */
    UNDEFINED(501, "未定义"),
    /**
     * 未定义异常
     */
    ERROR_PARAM(502, "您输入的参数有非法字符，请输入正确的参数"),
    /**
     * 该服务已下线
     */
    SERVICES_DISABLED(1, "服务未启用"),
    /**
     * 请求参数不能为空
     */
    PARAM_NOT_NULL(101, "请求参数不能为空"),
    /**
     * 字段名重复
     */
    COLUMN_REPEAT(112, "字段名重复，请重新填写"),
    /**
     * 参数不匹配
     */
    PARAM_NOT_MATCH(102, "参数不匹配"),
    /**
     * 权限认证参数
     */
    NO_AUT_PARAM(103, "权限参数不存在"),
    /**
     * 日期格式错误
     */
    DATE_FORMAT_EXCEPTION(104, "日期格式错误"),
    /**
     * 网络连接异常
     */
    CONNECTION_REFUSED(105, "连接拒绝"),
    /**
     * 登录失败
     */
    LOGIN_BAD(107, "用户登录失败,请确认用户信息"),
    /**
     * 流程删除失败
     */
    BAD_DELETE_PROCESS(106,"文件已进入流转流程，删除失败"),
    /**
     * 无可用端口
     */
    NO_PORT_AVAILABLE(111, "无可用端口"),
    /**
     * 文件下载异常
     */
    FILE_DOWNLOAD_EXCEPTION(607, "文件下载异常"),
    /**
     * 文件传输异常
     */
    FILE_TRANS_EXCEPTION(608, "文件传输异常"),
    /**
     * 文件名不存在
     */
    FILE_NAME_EXCEPTION(609, "文件名不存在"),
    /**
     * 文件名不存在
     */
    FILE_NAME_REPEAT(610, "文件名重复,请重新上传"),
    /**
     * 文件名不存在
     */
    FILE_DELETE_FAIL(611, "文件删除异常"),
    /**
     * 文件名不存在
     */
    FILE_NOT_SUPPORT(612, "不支持的文件类型，请重新上传"),
    /**
     * 文件名不存在
     */
    FILE_NOT_EXIT(613, "业务文件未上传，请上传业务文件");

    /**
     * 状态码
     */
    private final Integer code;

    /**
     * 内容
     */
    private final String reasonPhrase;

    Status(Integer code, String reasonPhrase) {
        this.code = code;
        this.reasonPhrase = reasonPhrase;
    }
}
