package org.jeecg.module.custom.ocr.base.constant;

import java.io.File;
import java.util.Arrays;
import java.util.List;

public interface SystemConstants {
    String X_ACCESS_TOKEN = "logintoken";
    //企业微信登录标志
    String LOGIN_TYPE_QYWX = "wx";
    
    //短信登录标志
    String LOGIN_TYPE_SMS = "sms";
    
    //表单登录
    String LOGIN_TYPE_FORM = "form";
    
    //与yml配置中的loginProcessingUrl保持一
    String LOGIN_PROCESSING_URL = "/loginadmin/form";

    //分页使用，每页展示的数据条数
    Integer SYS_ROOT_PAGE_SIZE = 10;

    //间隔时间，单位为分钟
    int SYS_ROOT_TIME_DVALUE = 15;

    //分隔符
    String SYS_ROOT_PRIFIX = "_";

    //用于标示根节点数据
    Long SYS_ROOT_TPYE = 0L;

    //当用户的issys字段为1时，该用户为超级管理员，拥有所有权限
    int ADMIN_IS_SYS = 1;

    //数据库中根级数据父级标志
    String SYS_ROOT_PARENTID = "-1";

    //数据库中根级别主键
    String SYS_ROOT_TYPE = "0";

    
    //启用标志
    int SYS_R_MODEL_USE = 1;

    String SYS_JSP_TOOLSBAR = "Jsptoolbar";

    String SYS_JSP_OPERATION = "JspOperation";

    Long SYSTEM_USER_EMPLOYEE = 1L;

    String SYS_LOCALHOST_IP = "0:0:0:0:0:0:0:1";

    //none(当前服务器)
    String SYS_UPLOAD_TYPE_NONE = "none";

    //ftp(ftpServer服务)
    String SYS_UPLOAD_TYPE_FTP = "ftp";

    //fdfs(使用FastDFS服务作为文件管理)
    String SYS_UPLOAD_TYPE_FDFS = "fdfs";

    //有效标志
    Integer SYS_S_MODEL_USE = 0;
    
    //禁用标志
    int SYS_R_MODEL_NO_USE = 0;

    //是否在页面列表操作列展示，默认为0：表示只在工具条展示，1：表示即在工具条展示也在列表中展示，2：表示只在操作列展示
    Integer ADMIN_METHOD_SYS_TOOLS = 0;

    //是否在页面列表操作列展示，默认为0：表示只在工具条展示，1：表示即在工具条展示也在列表中展示，2：表示只在操作列展示
    Integer ADMIN_METHOD_SYS_COLUMNANDTOOLS = 1;

    //是否在页面列表操作列展示，默认为0：表示只在工具条展示，1：表示即在工具条展示也在列表中展示，2：表示只在操作列展示
    Integer ADMIN_METHOD_SYS_COLUMN = 2;

    //数据展示级别默认为0:无任何权限，1：所在机构，2：仅本人数据，3：所在部门及以下数据，4：隶属顶级机构及一下数据，5：所有数据，9：自定数据权限;
    int ROLES_SHOWLEAVEL_0 = 0;

    int ROLES_SHOWLEAVEL_1 = 1;

    int ROLES_SHOWLEAVEL_2 = 2;

    int ROLES_SHOWLEAVEL_3 = 3;

    int ROLES_SHOWLEAVEL_4 = 4;

    int ROLES_SHOWLEAVEL_5 = 5;

    int ROLES_SHOWLEAVEL_9 = 9;

    //linux、macos分隔符
    String SYS_PATH_PIX = "/";

    //windows分隔符
    String SYS_PATH_PIX_WIN = "\\";
    
    //上传文件夹名称
    String SYSTEM_UPLOAD_FILENAME = "upload";
    
    //上传用户相关信息存放的文件夹名称
    String PROJECT_USER_IMPOER_PATH = File.separator + "upload" + File.separator + "project" +  File.separator + "user" + File.separator;

    //上传用户头像的文件夹名称
    String PROJECT_USER_ICON_PATH = File.separator + "upload" + File.separator + "user" +  File.separator + "icon" + File.separator;
    
    String PROJECT_SIGN_ICON_PATH = File.separator + "upload" + File.separator + "sign" +  File.separator + "icon" + File.separator;

    //日志表,默认为0未定义操作,1：登陆,2：退出,3:service层操作
    Integer WEB_LOG_TYPR_SYS = 0;

    //日志表,默认为0未定义操作,1：登陆,2：退出,3:service层操作
    int WEB_LOG_TYPR_SYS_USE_LOGIN = 1;

    //日志表,默认为0未定义操作,1：登陆,2：退出,3:service层操作
    int WEB_LOG_TYPR_SYS_USE_LOGOUT = 2;

    //日志表,默认为0未定义操作,1：登陆,2：退出,3:service层操作
    int WEB_LOG_TYPR_SYS_USE_SERVICE = 3;

    //编辑器上传文件夹名称
    public static final String EDITOR_UPLOAD_FILE_PATH = File.separator + "upload" + File.separator + "editor" +  File.separator + "attached" + File.separator;
    //图片后缀枚举
    public static final List<String> SYSTEM_IMG_SUFFIX = Arrays
        .asList("image/jpg","image/jpeg","image/png","image/gif","image/bmp");

    //视频后缀枚举
    public static final List<String> SYSTEM_VIDEO_SUFFIX = Arrays.asList("video/mp4");

    
}
