package com.iailab.sdk.auth.client.common.exception.enums;

import com.iailab.sdk.auth.client.common.exception.ErrorCode;

/**
 * 鍏ㄥ眬閿欒鐮佹灇涓�
 * 0-999 绯荤粺寮傚父缂栫爜淇濈暀
 *
 * 涓€鑸儏鍐典笅锛屼娇鐢� HTTP 鍝嶅簲鐘舵€佺爜 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
 * 铏界劧璇达紝HTTP 鍝嶅簲鐘舵€佺爜浣滀负涓氬姟浣跨敤琛ㄨ揪鑳藉姏鍋忓急锛屼絾鏄娇鐢ㄥ湪绯荤粺灞傞潰杩樻槸闈炲父涓嶉敊鐨�
 * 姣旇緝鐗规畩鐨勬槸锛屽洜涓轰箣鍓嶄竴鐩翠娇鐢� 0 浣滀负鎴愬姛锛屽氨涓嶄娇鐢� 200 鍟︺€�
 *
 * @author iailab
 */
public interface GlobalErrorCodeConstants {

    ErrorCode SUCCESS = new ErrorCode(0, "鎴愬姛");

    // ========== 瀹㈡埛绔敊璇 ==========

    ErrorCode BAD_REQUEST = new ErrorCode(400, "璇锋眰鍙傛暟涓嶆纭�");
    ErrorCode UNAUTHORIZED = new ErrorCode(401, "璐﹀彿鏈櫥褰�");
    ErrorCode FORBIDDEN = new ErrorCode(403, "娌℃湁璇ユ搷浣滄潈闄�");
    ErrorCode NOT_FOUND = new ErrorCode(404, "璇锋眰鏈壘鍒�");
    ErrorCode METHOD_NOT_ALLOWED = new ErrorCode(405, "璇锋眰鏂规硶涓嶆纭�");
    ErrorCode DATA_REPETITION = new ErrorCode(406, "鏁版嵁搴撳瓨鍦ㄩ噸澶嶆暟鎹�");
    ErrorCode LOCKED = new ErrorCode(423, "璇锋眰澶辫触锛岃绋嶅悗閲嶈瘯"); // 骞跺彂璇锋眰锛屼笉鍏佽
    ErrorCode TOO_MANY_REQUESTS = new ErrorCode(429, "璇锋眰杩囦簬棰戠箒锛岃绋嶅悗閲嶈瘯");

    // ========== 鏈嶅姟绔敊璇 ==========

    ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "绯荤粺寮傚父");
    ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "鍔熻兘鏈疄鐜�/鏈紑鍚�");
    ErrorCode ERROR_CONFIGURATION = new ErrorCode(502, "閿欒鐨勯厤缃」");

    // ========== 鑷畾涔夐敊璇 ==========
    ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "閲嶅璇锋眰锛岃绋嶅悗閲嶈瘯"); // 閲嶅璇锋眰
    ErrorCode DEMO_DENY = new ErrorCode(901, "婕旂ず妯″紡锛岀姝㈠啓鎿嶄綔");

    ErrorCode EMPTY_RESP = new ErrorCode(992, "缁撴灉涓虹┖");

    ErrorCode UNKNOWN = new ErrorCode(999, "鏈煡閿欒");

}