package com.jeequan.jeepay.core.model;

import com.jeequan.jeepay.core.constants.CS;
import lombok.Data;

/**
 * DB的安全设置
 *
 * @author terrfly
 * @date 2022/5/16 17:05
 */
@Data
public class DBsecurityConfig {

    /**
     * HTTP传输应用层加密开关
     */
    private Byte httpMessageEncryptFlag;

    /**
     * 限制登录次数(xx分钟最多尝试xx次)(0表示不限制)
     */
    private LoginErrorLimit loginErrorMaxLimit;

    /**
     * 密码规则
     */
    private PasswordRegexp passwordRegexp;

    /**
     * 密码有效期（天数）
     */
    private Integer passwordExpireDay;

    /**
     * 密码有效期超期是否强制更改
     */
    private Byte passwordExpiredMustModify;

    /**
     * 平台通信秘钥
     */
    private String platformApiSecret;


    @Data
    public static class LoginErrorLimit {

        /**
         * 限制x分钟
         */
        private Long limitMinute;

        /**
         * 最大尝试次数
         */
        private Long errMax;

    }

    @Data
    public static class PasswordRegexp {

        /**
         * 正则表达式
         */
        private String regexpRules;

        /**
         * 错误提示
         */
        private String errTips;

    }

    public boolean httpMsgIsEncrypt() {

        if (httpMessageEncryptFlag != null && httpMessageEncryptFlag == CS.YES) {
            return true;
        }

        return false;
    }

    public boolean passwordExpiredIsMustModify() {

        if (passwordExpiredMustModify != null && passwordExpiredMustModify == CS.YES) {
            return true;
        }

        return false;
    }

}



