
package org.tio.sitexxx.service.vo;

import cn.hutool.core.util.StrUtil;
import org.tio.utils.jfinal.P;
import org.tio.utils.time.Time;

/**
 * @author tanyaowu 
 * 2016年9月19日 下午5:04:12
 */
public class Const {

	public static final class AdShow {
		/**
		 * 成功
		 */
		public static final int SUCCESS = 1;
		/**
		 * 达到时间限制
		 */
		public static final int TIME_LIMIT = 2;
		/**
		 * 达到数量限制
		 */
		public static final int MAX_LIMIT = 3;
	}

	/**
	 * 任务类型
	 */
	public static final class TaskType {
		/**
		 * 广告
		 */
		public static final int AD = 1;
		/**
		 * 邀请
		 */
		public static final int INVITE = 2;
	}

	/**
	 * 特殊字符
	 */
	public static final char[]	SPECIAL_CHARACTER		= new char[] { '<', '>', '\"', '\'', '\\', '/',  '`', '!', '@', '#', '$', '%', '^', '&', '*', '[',
	        ']', '{', '}', '＠', '￥', ' ', '	' };

	/**
	 * 握手签名时的key
	 */
	public static final String	HANDSHAKE_KEY			= P.get("app.handshake.key", "ufDoiDnj");
	public static final String	CHARSET					= "utf-8";

	/**
	 * 在ChannelContext存放ImSessionContext对象的key
	 */
	public static final String	IM_SESSION_KEY			= "im_session_key";

	public static final String APP_NAME = "app_name";
	/**
	 * 钱包商户号
	 */
	public static final String WALLET_MERCHANTID = P.get("wallet.merchantid", "");

	/**
	 * IM心跳超时时间，单位：毫秒
	 */
	public static final long	IM_HEARTBEAT_TIMEOUT	= P.getLong("im.heartbeat.timeout", 120 * 1000L);

	/**
	 * 焦点刷新时间-毫秒
	 */
	public static final int FOCUS_REFRESH_TIMEOUT = P.getInt("focus.refresh.timeout", 20000);

	/**
	 * 上传资源服务器存放上传文件的根目录
	 */
	public static final String	RES_ROOT		= P.get("res.root");
	/**
	 * 服务器的IP地址或域名
	 */
	public static final String	MY_IP			= P.get("my.ip");

	/**
	 * 是否使用tio集群
	 * true : 使用集群
	 * false : 不使用
	 */
	public static final boolean USE_TIO_CLU = P.getBoolean("use.tio.clu", false);

	/**
	 * 新版同步标识
	 */
	public static final boolean SYN_NEW_VERSION = P.getBoolean("syn.newversion.flag", false);

	/**
	 * 敏感词过滤开关
	 */
	public static final boolean SENSITIVE_FLAG = P.getBoolean("sensitive.flag", false);
	
	/**
	 * 短信服务端验证开关
	 */
	public static final boolean SMS_OPENFLAG = P.getInt("sms.openflag", 1) == 1;

	/**
	 * 焦点高性能开关
	 * false: 优先保证正确性
	 * true:  优先保证性能
	 */
	public static final boolean MSG_READ_FOCUS_FLAG = P.getBoolean("msg.read.focus.flag", false);

	/**
	 * 是否启动im服务器
	 */
	public static final boolean	IS_START_IM	= P.getInt("start.im", 2) == 1;

	/**
	 * 是否启动了view服务器
	 */
	public static final boolean IS_START_VIEW = P.getInt("start.view", 1) == 1;

	/**
	 * 通道默认uid
	 */
	public static final Integer MSG_DEFAULT_UID = -1;

	/**
	 * im是否进行ssl认证
	 */
	public static final boolean IM_SSL_FLAG = StrUtil.isNotBlank(P.get("ssl.keystore"));

	public static final Short MSG_CIRCLE_COMMENT = 77;

	/**
	 * 上传资源服务器
	 */
	public static String RES_SERVER = P.get("res.server");
	/**
	 * im服务地址
	 */
	public static String IM_SERVER = P.get("im.server");
	/**
	 * 网站地址
	 */
	public static String SITE = P.get("site");

	public static String API_CONTEXTPATH = P.get("http.api.contextpath", "/mytio");
	public static String API_SUFFIX = P.get("http.api.suffix", ".tio_x");

	static {
		if (StrUtil.endWith(RES_SERVER, "/")) {
			RES_SERVER = StrUtil.subBefore(RES_SERVER, "/", true);
		}
	}

	static {
		if (StrUtil.endWith(IM_SERVER, "/")) {
			IM_SERVER = StrUtil.subBefore(IM_SERVER, "/", true);
		}
	}

	static {
		if (StrUtil.endWith(SITE, "/")) {
			SITE = StrUtil.subBefore(SITE, "/", true);
		}
	}

	/**
	 * tio监控数据统计时段
	 * @author tanyaowu
	 * 2016年10月30日 下午1:34:46
	 */
	public interface IpStatDuration {
		Long DURATION_1 = Time.MINUTE_1 * 2;

		Long[] IPSTAT_DURATIONS = new Long[] { DURATION_1 };
	}

	public interface OssConfig {
		String IS_OSS = "isOss";

		String OSS_ACCESS_KEY = "ossAppId";


		String OSS_SECRET_KEY = "ossKey";

		String OSS_ENDPOINT = "ossAddress";

		String OSS_BUCKET_NAME = "ossBucket";
	}

	public interface Protocol {
		String	IM_WS	= "ws";
		String	IM_APP	= "app";
	}

	public interface Code {
		String CODE = "omnipotent.code";
	}

	public interface ErrorCode {
		/**
		 * 未登录
		 */
		String NOT_LOGIN = "未登录";
	}

	/**
	 * ip访问路径统计
	 * @author tanyaowu
	 * 2016年10月30日 下午1:34:29
	 */
	public interface IpPathAccessStatDuration {
		//		public static final long DURATION_1 = Time.SECOND_1 * 10;
		long DURATION_2 = Time.MINUTE_1 * 5;
		//		public static final long DURATION_3 = Time.HOUR_1 * 1;

		//		public static final Long[] IP_PATH_ACCESS_STAT_DURATIONS = new Long[] { DURATION_1 };
		Long[] IP_PATH_ACCESS_STAT_DURATIONS = new Long[] { DURATION_2 };
	}

	public interface TokenPathAccessStatDuration {
		//		public static final long DURATION_1 = Time.SECOND_1 * 10;
		long DURATION_2 = Time.MINUTE_1 * 5;
		//		public static final long DURATION_3 = Time.HOUR_1 * 1;

		//		public static final Long[] IP_PATH_ACCESS_STAT_DURATIONS = new Long[] { DURATION_1 };
		Long[] TOKEN_PATH_ACCESS_STAT_DURATIONS = new Long[] { DURATION_2 };

	}

	public interface ImPort {
		/**
		 * pc端的端口(websocket的端口)
		 */
		Integer	WS	= P.getInt("im.port.ws");
		/**
		 * app端的端口(安卓和ios的端口一样)
		 */
		Integer	APP	= P.getInt("im.port.app");
	}

	/**
	 * 极光推送参数
	 *
	 * @author xufei
	 * 2020年9月24日 上午10:23:14
	 */
	public interface JPushConfig {

		/**
		 * 开启开关
		 */
		boolean	OPENFLAG	= P.getBoolean("Jpush.open.flag", false);
	}

	/**
	 * view层，公共model的key
	 * @author tanyaowu
	 */
	public interface ModelKey {
		String	TITLE						= "title";
		String	KEYWORDS					= "keywords";
		String	DESCRIPTION					= "description";
		String	RES_SERVER					= "res_server";
		String	JS_VERSION					= "js_version";
		String	API_CONTEXTPATH				= "api_ctx";				// "/api"
		String	API_SUFFIX					= "api_suf";				// ".php"
		String	HTTP_SESSION_COOKIE_NAME	= "session_cookie_name";	// "TIO_SESSION"
		String	SITE_NAME					= "sitename";
		/**
		 * 声网序号
		 */
		String RTC_APP_ID = "rtcAppId";
		/**
		 * 声网密钥
		 */
		String RTC_SECRET = "rtcSecret";
		/**
		 * oss 密钥
		 */
		String OSS_KEY = "ossKey";
		/**
		 * oss 应用序号
		 */
		String OSS_APP_ID = "ossAppId";
		/**
		 * oss 地址
		 */
		String OSS_ADDRESS = "ossAddress";
		/**
		 * oss 桶
		 */
		String OSS_BUCKET = "ossBucket";
		/**
		 * 是否开启oss
		 */
		String OSS_IS_OSS = "isOss";
		/**
		 * api地址
		 */
        String SWITCH_ADDRESS = "switchAddress";
		/**
		 * socket地址
		 */
		String SOCKET_ADDRESS = "socketAddress";
	}

	/**
	 * 系统参数配置key值
	 *
	 */
	public interface ConfMapping {
		/**
		 * 提现的最大次数
		 */
		String WX_WALLET_WITHHOLD_MAX_COUNT = "wx.wallet.withhold.max.count";

		/**
		 * 充值订单超时时间
		 */
		String WX_WALLET_RECHARGE_TIMEOUT = "wx.wallet.recharge.timeout";

		/**
		 * 好友会话缩略最长字符
		 */
		String WX_FRIEND_MSG_RESUME_MAXSIZE = "wx.friend.msg.resume.maxsize";

		/**
		 * 好友历史消息分页条数
		 */
		String WX_FRIEND_MSG_LIMIT = "wx.friend.msg.limit";

		/**
		 * 提现的最大金额
		 */
		String WX_WALLET_WITHHOLD_MAX_AMOUNT_ZHIFU = "wx.wallet.withhold.max.amount.zhifu";
		/**
		 * 提现的最小金额
		 */
		String WX_WALLET_WITHHOLD_MIN_AMOUT_ZHIFU = "wx.wallet.withhold.min.amount.zhifu";

		String TX_BANK = "tx_bank";
		/**
          * 是否开启短信
          */
		 String IS_SHORT = "smscode";

		/**
		 * 默认查询群聊的的历史记录条数
		 */
		String WX_GROUP_MSG_LIMIT = "wx.group.msg.limit";

		/**
		 * 缩略消息默认长度
		 */
		String WX_GROUP_MSG_RESUME_MAXSIZE = "wx.group.msg.resume.maxsize";

		/**
		 * 群用户最大人数
		 */
		String WX_GROUP_MAX_JOIN_NUM = "wx.group.max.join.num";

		/**
		 * 撤回的最大时间
		 */
		String WX_MSG_BACK_MAX_TIME = "wx.msg.back.max.time";

		/**
		 * 群发限速开关
		 */
		String WX_GROUP_MSG_SEND_LIMIT_OPEN = "wx.group.msg.send.limit.open";

		/**
		 * 创建群限制：用户注册时间天数
		 */
		String WX_CREATE_GROUP_LIMIT_USER_REG_DAY = "wx.create.group.limit.user.reg.day";

		/**
		 * 聊天限制：用户注册时间天数
		 */
		String WX_CHAT_LIMIT_USER_REG_DAY = "wx.chat.limit.user.reg.day";

		/**
		 * 外部用户默认头像
		 */
		String IS_REGISTER = "is_register";

		/**
		 * 发送红包的最大金额
		 */
		static final String WX_WALLET_SENDREDPACKET_MAX_AMOUNT = "wx.wallet.sendredpacket.max.amount";

		public String WX_WALLET_SENDREDPACKET_MIN_AMOUNT = "wx_wallet_sendred_min_amount";

		/**
		 * 发红包超时时间
		 */
		static final String WX_WALLET_SENDREDPACKET_TIMEOUT = "wx.wallet.redpacket.timeout";

		/**
		 * 发红包支付超时时间
		 */
		static final String WX_WALLET_REDPACKET_PAY_TIMEOUT = "wx.wallet.redpacket.pay.timeout";

		/**
		 * 发红包初始化超时时间
		 */
		static final String WX_WALLET_REDPACKET_INT_TIMEOUT = "wx.wallet.redpacket.init.timeout";

		/**
		 * 提现的手续费
		 */
		String WX_WALLET_WITHHOLD_COMMISSION = "wx.wallet.withhold.commission";

		/**
		 * 提现的手续费常量
		 */
		String WX_WALLET_WITHHOLD_COMMISSION_CONST = "wx.wallet.withhold.commission.const";
		/**
		 * 提现的最大金额
		 */
		String WX_WALLET_WITHHOLD_MAX_AMOUNT = "wx.wallet.withhold.max.amount";

		/**
		 * 提现的最小金额
		 */
		String WX_WALLET_WITHHOLD_MIN_AMOUT = "wx.wallet.withhold.min.amount";
		/**
		 * 硬币比例
		 */
		String COIN_RATE = "coinRate";
		/**
		 * 广告分层比例
		 */
		String AD_LAYER_RATE = "adLayerRate";
	}

	/**
	 * 财务收支状态
	 *
	 */
	public static interface CoinFlag {
		/**
		 * 收入
		 */
		short INCOME = 1;

		/**
		 * 支出
		 */
		short PAY = 2;
	}

	/**
	 * 数据库名字常量
	 * @author tanyaowu
	 * 2016年10月20日 下午4:04:51
	 */
	public interface Db {
		/**
		 * tio_site_main数据库
		 */
		String	TIO_SITE_MAIN	= "tio_site_main";

		/**
		 * tio_site_stat数据库
		 */
		String	TIO_SITE_STAT	= "tio_site_stat";
	}

	/**
	 * 上传目录
	 * @author tanyaowu
	 * 2016年12月22日 下午5:03:14
	 */
	public interface UPLOAD_DIR {
		/**
		 * wx上传语音的目录
		 */
		String WX_AUDIO = "wx/upload/audio";

		/**
		 * wx上传图片的目录
		 */
		String WX_IMG = "wx/upload/img";

		/**
		 * wx上传文件的目录
		 */
		String WX_FILE = "wx/upload/file";

		/**
		 * 用户上传头像的目录
		 */
		String USER_AVATAR = "user/avatar";

		/**
		 * app错误日志
		 */
		String APP_LOG_ERR = "app/log/err";
	}

	/**
	 * topic常量，前后台要一致
	 * @author tanyaowu
	 * 2016年11月8日 下午4:16:25
	 */
	public interface Topic {
		/**
		 * 通用topic
		 */
		String	COMMON_TOPIC		= "COMMON_TOPIC";
		/**
		 * 把ip拉黑
		 */
		String	PULL_IP_TO_BLACK	= "PULL_IP_TO_BLACK";
		/**
		 * 清空html-view的缓存
		 */
		String	CLEAN_VIEW_CACHE	= "CLEAN_VIEW_CACHE";

		/**
		 * im管理后台操作消息
		 */
		String IM_MANAGER_OPER = "IM_MANAGER_OPER";
	}

	/**
	 * 通用yes/no
	 */
	public interface YesOrNo {
		/**
		 * 是
		 */
		short YES = 1;

		/**
		 * 否
		 */
		short NO = 2;
	}

	/**
	 * 群进入类型
	 * @author xufei
	 * 2021年1月13日 下午3:57:54
	 */
	public interface GroupJoinMode {
		/**
		 * 是
		 */
		short REVIEW = 1;

		/**
		 * 否
		 */
		short NO_REVIEW = 2;
	}

	/**
	 * 申请状态
	 * @author xufei
	 * 2020年1月9日 下午2:50:54
	 */
	public interface ApplyStatus {
		/**
		 *  通过
		 */
		short PASS = 1;

		/**
		 * 申请中
		 */
		short APPLY = 2;

		/**
		 * 无效：过期/拒绝
		 */
		short REJECT = 3;
	}

	/**
	 * 消息是否是系统发出
	 * @author tanyaowu
	 */
	public interface Sendbysys {
		/**
		 * 是
		 */
		short YES = 1;

		/**
		 * 否
		 */
		short NO = 2;
	}

	/**
	 * 标准状态常量
	 *
	 */
	public interface Status {
		/**
		 * 正常
		 */
		short	NORMAL		= 1;
		/**
		 * 禁用/处理中
		 */
		short	DISABLED	= 2;

		/**
		 * 删除
		 */
		short DELETE = 3;
	}

	public interface AccessToken {
		/**
		 * 存令牌(access_token)的cookie name
		 */
		String COOKIENAME_FOR_ACCESSTOKEN = "tio_access_token";
	}

	/**
	 * 三方登录状态
	 *
	 */
	public interface UserThirdStatus {
		/**
		 * 正式
		 */
		short NORMAL = 1;
	}

	/**
	 * 性别
	 * @author xufei
	 * 2020年3月3日 下午6:32:53
	 */
	public interface UserSex {
		/**
		 * 男
		 */
		short MALE = 1;

		/**
		 * 女
		 */
		short FEMALE = 2;

		/**
		 * 保密
		 */
		short SECRET = 3;
	}

	/**
	 * 业务标准来源模型
	 *
	 */
	public interface StandardMode {
		/**
		 * 充值
		 */
		short RECHARGE = 1;
	}

	/**
	 * 聊天模型
	 * @author xufei
	 */
	public interface ChatMode {
		/**
		 *  私聊
		 */
		short P2P = 1;

		/**
		 * 群聊
		 */
		short GROUP = 2;
		/**
		 * 消息
		 */
		short MSG = 3;
	}

	/**
	 * 群角色
	 * @author xufei
	 * 2020年2月13日 下午4:34:29
	 */
	public interface GroupRole {
		/**
		 * 群主
		 */
		short OWNER = 1;

		/**
		 * 成员
		 */
		short MEMBER = 2;

		/**
		 * 群管理员
		 */
		short MANAGER = 3;
	}

	/**
	 * Im的人员操作码
	 * @author xufei
	 * 2020年1月17日 下午2:20:08
	 */
	public interface WxUserOper {
		/**
		 * 删除聊天会话
		 */
		short DEL_ITEM_REACT = 1;

		/**
		 * 拉黑消息
		 */
		short BLACK = 2;

		/**
		 * 拉黑恢复消息
		 */
		short REMOVE_BLACK = 3;

		/**
		 * 激活操作
		 */
		short ACT = 4;

		/**
		 * 删除好友通知
		 */
		short DEL_FRIEND = 5;

		/**
		 * 被删除好友通知
		 */
		short TO_DEL_FRIEND = 6;

		/**
		 * 对方已读
		 */
		short TO_READ = 7;

		/**
		 * 清空聊天记录
		 */
		short CLEAR_CHAT_MSG = 8;

		/**
		 * 撤回消息
		 */
		short BACK_MSG = 9;

		/**
		 * 删除消息
		 */
		short DEL_MSG = 10;

		/**
		 * 隐藏会话(删除会话)：影响激活/已退群业务
		 */
		short HIDE_CHAT = 11;

		/**
		 * 置顶操作
		 */
		short CHAT_TOP = 21;

		/**
		 * 取消置顶操作
		 */
		short CHAT_CANCEL_TOP = 22;

		/**
		 * 设置免打扰
		 */
		short CHAT_MSGFREE = 25;

		/**
		 * 举报
		 */
		short CHAT_REPORT = 99;
        /**
         * 系统通知
         */
		Short NOTICE = 888;
	}

	/**
	 * 同步类型
	 * @author xufei
	 * 2020年8月27日 下午2:37:17
	 */
	public interface WxSynType {
		/**
		 * 会话同步
		 */
		short CHAT = 1;

		/**
		 * 链接建立
		 */
		short LINK_CREATE = 2;

		/**
		 * 客户端同步
		 */
		short CLIENT_SYN = 3;

	}

	/**
	 * 举报类型
	 * @author xufei
	 * 2021年1月27日 下午3:09:23
	 */
	public interface WxReport {
		/**
		 * 用户
		 */
		short USER = 1;

		/**
		 * 群
		 */
		short GROUP = 2;

		/**
		 * 消息
		 */
		short MSG = 3;

		/**
		 * 建议
		 */
		short ADVISE = 4;

	}

	/**
	 * 文件icon类型
	 * @author xufei
	 * 2020年8月26日 下午4:12:08
	 */
	public interface FileIconType {
		/**
		 * pdf
		 */
		short PDF = 1;

		/**
		 * txt
		 */
		short TXT = 2;

		/**
		 * doc
		 */
		short DOC = 3;

		/**
		 * xls
		 */
		short XLS = 4;

		/**
		 * ppt
		 */
		short PPT = 5;

		/**
		 * apk
		 */
		short APK = 6;

		/**
		 * 图片
		 */
		short IMG = 7;

		/**
		 * 压缩包
		 */
		short ZIP = 8;

		/**
		 * 视频
		 */
		short VIDEO = 9;

		/**
		 * 音频
		 */
		short AUDIO = 10;

		/**
		 * 其它
		 */
		short OTHER = 11;

	}

	/**
	 * 聊天系统code
	 * @author xufei
	 * 2020年2月25日 下午9:55:52
	 */
	public interface WxSysCode {
		/**
		 * 申请好友请求
		 */
		short APPLY_REQUEST = 30;

		/**
		 * 好友发生变更-新增
		 */
		short FRIEND_CHANGE_ADD = 31;

		/**
		 * 好友发生变更-减员
		 */
		short FRIEND_CHANGE_DEL = 32;

		/**
		 * 好友发生变更-信息修改
		 */
		short FRIEND_INFO_UPDATE = 33;

		/**
		 * 错误码
		 */
		short ERROR_CODE = -100;
	}

	/**
	 * 呼叫系统code
	 */
	public interface WxCallCode {
		/**
		 * 新邀请
		 */
		int NEW_INVITE = 2;
		/**
		 * 邀请同意
		 */
		int INVITE_ACCEPT = 3;
		/**
		 * 邀请拒绝
		 */
		int INVITE_REJECT = 4;
		/**
		 * 邀请取消
		 */
		int INVITE_CANCEL = 5;
	}

	/**
	 * 群操作通知
	 * @author xufei
	 * 2020年2月24日 下午1:04:59
	 */
	public interface WxGroupOper {
		/**
		 * 群主-删除群
		 */
		short DEL_GROUP = 1;

		/**
		 * 转让群-转让
		 */
		short CHANGE_OUT_GROUP = 2;

		/**
		 * 接受群-转让
		 */
		short CHANGE_IN_GROUP = 3;

		/**
		 * 群加入
		 */
		short UPDATE_JOINNUM = 4;

		/**
		 * 退群
		 */
		short LEAVE_GROUP = 5;

		/**
		 * 被踢出群
		 */
		short KICK_GROUP = 6;

		/**
		 * 重新加入群
		 */
		short RE_JOIN_GROUP = 7;

		/**
		 * 撤回消息
		 */
		short BACK_MSG = 9;

		/**
		 * 删除消息
		 */
		short DEL_MSG = 10;

		/**
		 * 更新群角色
		 */
		short UPDATE_GROUP_ROLE = 11;

		/**
		 * 修改群头像
		 */
		short UPDATE_GROUP_AVATAR = 20;

		/**
		 * 修改群名称
		 */
		short UPDATE_GROUP_NAME = 21;

		/**
		 * 自动修改群信息
		 */
		short AUTO_UPDATE_INFO = 22;

		/**
		 * 成员-同步删除群
		 */
		short MEMBER_DEL_GROUP = 26;

		/**
		 * 封停操作
		 */
		short INBLACK_OPER = 27;

		Short DEL_ALL_MSG = 72;
	}

	/**
	 * Im的消息操作码
	 * @author xufei
	 * 2020年1月17日 下午2:20:08
	 */
	public interface WxMsgOper {
		/**
		 * 删除消息
		 */
		short DEL = 1;

		/**
		 * 撤回消息
		 */
		short BACK = 9;

		/**
		 * 举报
		 */
		short REPORT = 99;
	}

	/**
	 *
	 * 用户同步类型
	 * @author xufei
	 * 2020年3月16日 上午10:25:43
	 */
	public interface UserToImSynType {
		/**
		 * 昵称
		 */
		short NICK = 1;

		/**
		 * 头像
		 */
		short AVATAR = 2;

		/**
		 * 用户所有
		 */
		short USER_ALL = 99;
	}

	/**
	 * 会话操作码
	 * @author xufei
	 * 2020年3月5日 下午9:36:45
	 */
	public interface SessionOper {
		/**
		 * 进入
		 */
		short JOIN = 1;

		/**
		 * 离开
		 */
		short LEAVE = 2;
	}

	/**
	 * 好友验证方式
	 * @author xufei
	 * 2020年1月8日 下午4:35:49
	 */
	public interface FdValidType {
		/**
		 *  验证
		 */
		short VALID = 1;
	}

	/**
	 * 周期
	 * @author xufei
	 */
	public interface PeriodType {

		/**
		 * 天
		 */
		short DAY = 1;

		/**
		 * 周
		 */
		short WEEK = 2;

		/**
		 * 月
		 */
		short MONTH = 3;

		/**
		 * 年
		 */
		short YEAR = 4;

		/**
		 * 季
		 */
		short QUARTER = 5;

		/**
		 * 小时
		 */
		short HOUR = 6;

		/**
		 * 时分
		 */
		short TIME = 7;

		/**
		 * 所有
		 */
		short TOTAL = 9;

		/**
		 * 所有标识
		 */
		String TOTAL_PERIOD = "total";
	}

	/**
	 * 内容类型
	 * 内容类型，1、普通文本消息，2、博客，3、文件，4、音频，5、视频，6：图片
	 * @author tanyaowu
	 *
	 */
	public interface ContentType {
		/**
		 *
		 */
		short TEXT = 1;

		/**
		 * 博客
		 */
		short BLOG = 2;

		/**
		 * 文件
		 */
		short FILE = 3;

		/**
		 * 音频
		 */
		short AUDIO = 4;

		/**
		 * 视频
		 */
		short VIDEO = 5;

		/**
		 * 图片
		 */
		short IMG = 6;

		short RUN_JS = 7;

		/**
		 * 名片
		 */
		short MSG_CARD = 9;

		/**
		 * 视频通话
		 */
		short CALL_VIDEO = 10;

		/**
		 * 语音通话
		 */
		short CALL_AUDIO = 11;

		/**
		 * 发红包
		 */
		short REDPACKET = 12;

		/**
		 * 群申请
		 */
		short GROUP_APPLY = 13;

		/**
		 * 地图位置
		 */
		short POSITION = 14;
		/**
		 * 引用
		 */
		short REFERENCE = 15;

		/**
		 * 模板消息
		 */
		short TEMPLATE = 88;
		/**
		 * 转发聊天
		 */
		short FORWARD = 66;
	}

	/**
	 * 消息名片类型-来自聊天模型
	 * @author xufei
	 * 2020年3月9日 下午2:32:09
	 */
	public interface MsgCardType {
		/**
		 * 好友
		 */
		short FRIEND = Const.ChatMode.P2P;

		/**
		 * 群
		 */
		short GROUP = Const.ChatMode.GROUP;

	}

	public interface Http {
		String SESSION_COOKIE_NAME = P.get("http.session.cookie.name", "tio_session");
	}

	/**
	 * 注册类型
	 * @author xufei
	 * 2020年12月16日 下午3:18:43
	 */
	public interface RegisterType {
		/**
		 * 邮箱
		 */
		int EMAIL = 1;

		/**
		 * 电话
		 */
		int PHONE = 2;
	}
	/**
	 * 禁言标志
	 * @author xufei
	 * 2021年1月5日 上午11:18:43
	 */
	public interface Forbiddenflag {
		/**
		 *  时长禁言
		 */
		short DURATION = 1;

		/**
		 * 不禁言
		 */
		short NO = 2;

		/**
		 * 长久
		 */
		short LONGTERM = 3;
	}

	/**
	 * 该类定义的，单位都是秒
	 * @author tanyaowu
	 */
	public static class CacheTime {
		/**
		 * 60秒
		 */
		public static final long SECOND_60 = 60;
	}

	/**
	 * 消息模板
	 */
	public static class MsgTemplate {

		/**
		 * 群禁言
		 */
		public static String BAN = "本群已禁言";
		/**
		 * 群解除禁言
		 */
		public static String CANCEL_BAN = "本群已解除禁言";
		/**
		 * 解除禁言
		 */
		public static String CANCEL_FORBIDDEN = "### 已被解除禁言 ";

		/**
		 * 禁言模板
		 */
		public static String FORBIDDEN = "### 已被禁言";

		/**
		 * 撤回消息模板
		 */
		public static String MSG_BACK = "%%% 撤回了一条消息";

		/**
		 * 管理员撤回消息模板
		 */
		public static String MANAGER_MSG_BACK = "%%% 撤回了一条成员消息";

		/**
		 * 被踢者接受到的模板
		 */
		public static String GROUP_TO_KICK = "### 被 %%% 移除了群聊";

		/**
		 * 踢人退群模板
		 */
		public static String GROUP_OPERATE_KICK = "%%% 将 ### 移除了群聊";

		/**
		 * 群设置管理
		 */
		public static String GROUP_SET_MANAGER = "你设置 ### 为管理员";
		/**
		 * 群其他设置管理
		 */
		public static final String GROUP_OTHER_SET_MANAGER = "你已被设为管理员";

		/**
		 * 群取消管理
		 */
		public static final String GROUP_CANCEL_SET_MANAGER = "你取消了 ### 的管理员";

		/**
		 * 群其他取消管理
		 */
		public static String GROUP_OTHER_CANCEL_SET_MANAGER = "你已被设为管理员";
	}

	/**
	 * 消息模板键值
	 */
	public static class MsgTemplateKey {
		/**
		 * 踢出群员
		 */
		public static final String GROUP_OPERATE_KICK = "operkick";
		/**
		 * 被踢出群员
		 */
		public static final String GROUP_TO_KICK = "tokick";

		/**
		 * 群禁言
		 */
		public static String GROUP_BAN = "groupban";

		/**
		 * 群取消禁言
		 */
		public static String GROUP_CANCEL_BAN = "groupcancelban";
		/**
		 * 取消禁言
		 */
		public static String GROUP_CANCEL_FORBIDDEN = "cancelforbidden";

		/**
		 * 禁言
		 */
		public static String GROUP_FORBIDDEN = "forbidden";

		/**
		 * 消息撤回
		 */
		public static String MSG_BACK = "msgback";

		/**
		 * 成员消息撤回
		 */
		public static String MEMBER_MSG_BACK = "managermsgback";
		/**
		 * 群设置管理
		 */
		public static String GROUP_SET_MANAGER = "groupsetmanager";
		/**
		 * 群另外设置管理
		 */
		public static String GROUP_OTHER_SET_MANAGER = "groupothersetmanager";

		/**
		 * 群取消管理
		 */
		public static String GROUP_CANCEL_SET_MANAGER = "groupcancelsetmanager";
		/**
		 * 群另外取消管理
		 */
		public static String GROUP_OTHER_CANCEL_SET_MANAGER = "groupothercancelsetmanager";
	}

	public enum Template {
		/**
		 * 加入
		 */
		JOIN("join", "%%% 邀请 ### 加入了群聊"),
		/**
		 * 离开
		 */
		LEAVE("leave", "%%% 退出了群聊"),
		/**
		 * 群主离开
		 */
		OWNER_LEAVE("ownerleave", "%%% 退出了群聊，### 自动成为群主");

		/**
		 * 键值
		 */
		private final String key;
		/**
		 * 模板
		 */
		private final String template;
		Template(String key, String template){
			this.key = key;
			this.template = template;
		}

		public String getKey() {
			return key;
		}

		public String getTemplate() {
			return template;
		}
	}

	/**
	 * 广告类型
	 */
    public static class AdType {
		/**
		 * 无
		 */
		public static final int NONE = 0;
		/**
		 * 穿山甲
		 */
		public static final int PANGLE_AD = 1;
		/**
		 * 腾讯
		 */
		public static final int TENCENT_AD = 2;
		/**
		 * 百度
		 */
		public static final int BAIDU_AD = 3;
		/**
		 * 快手
		 */
		public static final int KUAISHOU_AD = 4;
	}
}
