package com.example.zxweb.common.constant.enums;


/**
 * @Description: IOT设备API接口路径
 * @author: ZhouWenTao
 * @date: 2023/9/8 13:05
 */
public enum RmsApiEnum {
    //https://docs.qq.com/doc/DVWxxY0hOdkxYaEJH

    /**
     * 系统登陆
     * 本接口用于系统启用token验证功能调用，登陆成功即可，其它接口无须传token值，token1小时有效，账号和密码可联系技术人员获取。
     */
    post_auth_login("/rms/auth/login","系统登陆"),

    /**
     * 访客查询
     * 本接口用于访客信息查询，查询出访客登记的所有信息，建议查询条件为当天时间+状态查询，不易跨月，多天的频繁调用，对服务压力大，查询结果为倒序排序。
     */
    post_fkterminal_findAccessRecord("/rms/fkterminal/findAccessRecord","访客查询"),

    /**
     *  本接口用于第三方系统做访客预约，将预约审批通过的访客信息下发至访客系统，访客需要在访客机上进行二次验证的需求调用此接口。
     * 注：调用此接口前需先将人员组织架构同步到访客系统中，否则无被访人ID导致预约失败
     */
    post_sync_orderrecord("/rms/sync/orderrecord","访客预约"),
    /**
     * 本接口用于主动调用访客系统注销，针对于发卡用户使用，比如：访客登记发放门禁卡，出门注销时可调用此接口
     */
    post_fkterminal_recoverCard("/rms/fkterminal/recoverCard","访客注销"),
    ;


    /**
     * 接口地址
     */
    String api;
    /**
     * 描述
     */
    String text;


    public String getApi() {
        return api;
    }

    public void setApi(String api) {
        this.api = api;
    }

    public String getText(){
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    /**
     * 构造器
     *
     * @param api 地址
     * @param text 描述
     */
    RmsApiEnum(String api, String text) {
        this.api = api;
        this.text = text;
    }


    /**
     * 根据 接口地址 匹配
     *
     * @param api 接口地址
     * @return String 描述
     */
    public static String getTextByApi(String api){
        for (RmsApiEnum e : RmsApiEnum.values()) {
            if (api.startsWith(e.getApi())) {
                return e.getText();
            }
        }
        return null;
    }

    /**
     * 根据 描述 匹配
     * @param text 描述
     * @return
     */
    public static String getApiByText(String text){
        for (RmsApiEnum e : RmsApiEnum.values()) {
            if (text.startsWith(e.getText())) {
                return e.getApi();
            }
        }
        return null;
    }
}
