package com.xinelu.common.constant;

import io.jsonwebtoken.Claims;

/**
 * 通用常量信息
 *
 * @author xinyilu
 */
public class Constants {
    /**
     * UTF-8 字符集
     */
    public static final String UTF8 = "UTF-8";

    /**
     * GBK 字符集
     */
    public static final String GBK = "GBK";

    /**
     * http请求
     */
    public static final String HTTP = "http://";

    /**
     * https请求
     */
    public static final String HTTPS = "https://";

    /**
     * 通用成功标识
     */
    public static final String SUCCESS = "0";

    /**
     * 通用失败标识
     */
    public static final String FAIL = "1";

    /**
     * 登录成功
     */
    public static final String LOGIN_SUCCESS = "Success";

    /**
     * 注销
     */
    public static final String LOGOUT = "Logout";

    /**
     * 注册
     */
    public static final String REGISTER = "Register";

    /**
     * 登录失败
     */
    public static final String LOGIN_FAIL = "Error";

    /**
     * 验证码有效期（分钟）
     */
    public static final Integer CAPTCHA_EXPIRATION = 2;

    /**
     * 令牌
     */
    public static final String TOKEN = "token";

    /**
     * 令牌前缀
     */
    public static final String TOKEN_PREFIX = "Bearer ";

    /**
     * 令牌前缀
     */
    public static final String LOGIN_USER_KEY = "login_user_key";

    /**
     * 用户ID
     */
    public static final String JWT_USERID = "userid";

    /**
     * 用户名称
     */
    public static final String JWT_USERNAME = Claims.SUBJECT;

    /**
     * 用户头像
     */
    public static final String JWT_AVATAR = "avatar";

    /**
     * 创建时间
     */
    public static final String JWT_CREATED = "created";

    /**
     * 用户权限
     */
    public static final String JWT_AUTHORITIES = "authorities";

    /**
     * 资源映射路径 前缀
     */
    public static final String RESOURCE_PREFIX = "/profile";

    /**
     * 数据库路径 前缀
     */
    public static final String D_RESOURCE_PREFIX = "/profile";

    /**
     * 查找本地文件 前缀
     */
    public static final String D_UPLOAD_PREFIX = "D:/xinyilu/uploadPath";

    /**
     * RMI 远程方法调用
     */
    public static final String LOOKUP_RMI = "rmi:";

    /**
     * LDAP 远程方法调用
     */
    public static final String LOOKUP_LDAP = "ldap:";

    /**
     * LDAPS 远程方法调用
     */
    public static final String LOOKUP_LDAPS = "ldaps:";

    /**
     * 定时任务白名单配置（仅允许访问的包名，如其他需要可以自行添加）
     */
    public static final String[] JOB_WHITELIST_STR = {"com.xinyilu"};

    /**
     * 定时任务违规的字符
     */
    public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
            "org.springframework", "org.apache", "com.xinyilu.common.utils.file"};

    /**
     * 护理编码前缀
     */
    public static final String PATIENT_PREFIX = "HL";

    /**
     * 预约订单编号前缀
     */
    public static final String RESERVATION_ORDER_PREFIX = "RO";

    /**
     * 区域编码
     */
    public static final String COMMUNITY_CODE = "CI";


    /**
     * 疾病信息字典编码
     */
    public static final String DISEASE_INFO = "DI";

    /**
     * 护理类型编码前缀
     */
    public static final String NURSE_ITEM_CODE = "XM";

    /**
     * 护理站标签编码前缀
     */
    public static final String LABEL_CODE = "BQ";

    /**
     * 护理站人员编码前缀
     */
    public static final String NURSE_PERSON_CODE = "RY";

    /**
     * 科室编码
     */
    public static final String NURSE_STATION_DEPARTMENT = "D";

    /**
     * 科室编码前缀
     */
    public static final String NURSE_STATION_DEPARTMENT_PREFIX = "NSD_";

    /**
     * 护理站耗材信息
     */
    public static final String STATION_CONSUMABLE = "HC";
    /**
     * 护理项目信息
     */
    public static final String STATION_ITEM = "XM";

    /**
     * 护理站项目基本信息导入模板
     */
    public static final String NURSE_STATION_ITEM_TEMPLATE = "1";
    /**
     * 护理耗材基本信息导入模板
     */
    public static final String NURSE_STATION_CONSUMABLE = "2";


    /**
     * 微信小程序ACCESS_TOKEN前缀
     */
    public static final String NURSE_STATION_APPLET_ACCESS_TOKEN = "NURSE_STATION_APPLET_ACCESS_TOKEN_XYL_";

    /**
     * 护理员微信小程序ACCESS_TOKEN前缀
     */
    public static final String NURSE_STATION_PERSON_APPLET_ACCESS_TOKEN = "NURSE_STATION_PERSON_APPLET_ACCESS_TOKEN_";

    /**
     * 护理站图片路径上传
     */
    public static final String NURSE_STATION_TYPE = "stationPictureUrl";

    /**
     * 护理站简介附近图片路径上传
     */
    public static final String NURSE_STATION_INTRODUCE_TYPE = "stationIntroducePictureUrl";

    /**
     * 护理站项目图片路径上传
     */
    public static final String NURSE_STATION_ITEM_TYPE = "itemPictureUrl";

    /**
     * 商品图片路径上传
     */
    public static final String GOODS_PICTURE_URL = "goodsPictureUrl";

    /**
     * 用户头像修改上传
     */
    public static final String HEAD_PICTURE_URL = "headPictureUrl";

    /**
     * 商品分类图片地址
     */
    public static final String GOODS_CATEGORY_PICTURE = "goodsCategoryPicture";

    /**
     * 任务完成上传图片
     */
    public static final String APPOINTMENT_ORDER_DETAILS_URL = "appointmentOrderDetailsUrl";

    /**
     * 商品属性图片地址
     */
    public static final String ATTRIBUTE_PICTURE_URL = "attributePitureUrl";

    /**
     * 筛查预约条码图片地址
     */
    public static final String APPLY_BARCODE_PICTURE_URL = "applyBarcodePitureUrl";

    /**
     * 筛查预约条码图片地址
     */
    public static final String REGISTER_BARCODE_PICTURE_URL = "registerBarcodePitureUrl";

    /**
     * 血小板筛查图片地址
     */
    public static final String PLATELET_PICTURE_URL = "plateletPitureUrl";

    /**
     * 眼底病变筛查左眼图片地址
     */
    public static final String LEFT_EYE_PICTURE_URL = "leftEyePitureUrl";
    /**
     * 眼底病变筛查右眼图片地址
     */
    public static final String RIGHT_EYE_PICTURE_URL = "rightEyePitureUrl";

    /**
     * 阿尔兹海默症结果文件地址
     */
    public static final String ALZHEIMER_FILE_URL = "alzheimerFileUrl";
    /**
     * 护理站模板信息下载
     */
    public static final String NURSE_STATION = "nurseStation";

    /**
     * 护理站人员模板信息下载
     */
    public static final String NURSE_STATION_PERSON = "nurseStationPerson";

    /**
     * 护理类型编码前缀
     */
    public static final String NURSE_TYPE_CODE = "LX";

    /**
     * 商品编码前缀
     */
    public static final String GOODS_CODE = "GC";

    /**
     * 商品分类编码前缀
     */
    public static final String GOODS_CATEGORY_CODE = "GF";

    /**
     * 商品分类编码前缀
     */
    public static final String ATTRIBUTE_CODE = "AT";

    /**
     * 护理项目redis键值前缀
     */
    public static final String NURSE_STATION_ITEM_KEY = "NURSE_STATION_ITEM_KEY";

    /**
     * 护理站产品redis键值前缀
     */
    public static final String NURSE_STATION_PRODUCT_KEY = "NURSE_STATION_PRODUCT_KEY";

    /**
     * 微信小程序支付prepay_id前缀
     */
    public static final String PREPAY_ID_KEY = "PREPAY_ID_KEY_";

    /**
     * 微信支付回调通知订单锁前缀
     */
    public static final String WE_CHAT_NOTIFY_KEY = "WE_CHAT_NOTIFY_KEY_";

    /**
     * 修改预约服务订单状态Redis键
     */
    public static final String UPDATE_APPOINTMENT_ORDER_STATUS_KEY = "UPDATE_APPOINTMENT_ORDER_STATUS_KEY_";

    /**
     * 修改商品订单状态Redis键
     */
    public static final String UPDATE_GOODS_ORDER_STATUS_KEY = "UPDATE_GOODS_ORDER_STATUS_KEY_";

    /**
     * 新增库存数量Redis键
     */
    public static final String ADD_GOODS_STOCK_KEY = "ADD_GOODS_STOCK_KEY_";

    /**
     * 减少库存数量Redis键
     */
    public static final String REDUCE_GOODS_STOCK_KEY = "REDUCE_GOODS_STOCK_KEY_";

    /**
     * 微信支付回调标识
     */
    public static final String PAY_NOTIFY = "PAY";

    /**
     * 微信退款回调标识
     */
    public static final String REFUND_NOTIFY = "REFUND";

    /**
     * 微信退款回调通知订单锁前缀
     */
    public static final String WE_CHAT_REFUND_KEY = "WE_CHAT_REFUND_KEY_";

    /**
     * 商城购买商品减少库存数量Redis键
     */
    public static final String BUY_GOODS_REDUCE_STOCK_KEY = "BUY_GOODS_REDUCE_STOCK_KEY_";

    /**
     * 手机App支付prepay_id前缀
     */
    public static final String APP_PREPAY_ID_KEY = "APP_PREPAY_ID_KEY_";

    /**
     * Excel文件格式后缀
     */
    public static final String XLSX = "xlsx";

    /**
     * Excel文件格式后缀
     */
    public static final String XLS = "xls";

    /**
     * 男性
     */
    public static final String MALE = "MALE";

    /**
     * 女性
     */
    public static final String FEMALE = "FEMALE";

    /**
     * 店铺Redis键
     */
    public static final String STORE_KEY = "SHOP";

    /**
     * 默认密码
     */
    public static final String PASS_WORD = "123456";

    /**
     * sys_user表 : 男性
     */
    public static final String SYS_USER_MALE = "0";

    /**
     * sys_user表 : 女性
     */
    public static final String SYS_USER_FEMALE = "1";

    /**
     * 护理员App文件格式后缀
     */
    public static final String APK = "apk";

    /**
     * 护理员App文件格式名称
     */
    public static final String APK_NAME = "泉医到家护理员App.apk";

    /**
     * 护理站角色键值标识
     */
    public static final String STATION_ROLE = "stationRole";

    /**
     * 运营角色键值标识
     */
    public static final String OPERATE_ROLE = "operateRole";


    /**
     * 图片上传文件带.的
     */
    public static final String FILE_NAME_SPOT = ".";

    /**
     * 移动端令牌Redis键前缀
     */
    public static final String MOBILE_AUTHORIZATION_KEY = "MOBILE_AUTHORIZATION_KEY_";

    /**
     * 移动端令牌前缀
     */
    public static final String MOBILE_AUTHORIZATION_PREFIX = "MOBILE_AUTHORIZATION_PREFIX";

    /**
     * 护理项目分类编码前缀
     */
    public static final String CLASSIFY_ITEM = "HLT";

    /**
     * 学习培训项目信息编码前缀
     */
    public static final String TRAINING_ITEM = "TI";

    /**
     * 学习培训分类编码前缀
     */
    public static final String TRAINING_CATEGORY = "TC";

    /**
     * 学习培训分类编码前缀
     */
    public static final String TRAINING_ITEM_DIRECTORY = "TID";

    /**
     * 护理机构分类编码前缀
     */
    public static final String NURSE_AGENCY = "NA";

    /**
     * 海报编号编码前缀
     */
    public static final String POSER_CODE = "POS";

    /**
     * 护理项目分类图标存放地址
     */
    public static final String NURSE_ITEM_CLASSIFY_URL = "nurseItemClassifyUrl";
    /**
     * 护理机构分类图片识别标识
     */
    public static final String NURSE_STATION_CLASSIFY_URL = "nurseStationClassifyUrl";

    /**
     * 海报图片存放路径
     */
    public static final String POSTER_PICTURE_URL = "posterPictureUrl";

    /**
     * 资讯主缩略图地址
     */
    public static final String LEAD_THUMBNAIL_URL = "leadThumbnailUrl";
    /**
     * 海报视频存放路径
     */
    public static final String POSTER_VIDEO_URL = "posterVideoUrl";

    /**
     * 科室编码前缀
     */
    public static final String DEPARTMENT_CODE = "HDC";

    /**
     * 医院编码前缀
     */
    public static final String HOSPITAL_CODE = "HS";

    /**
     * 资讯分类编码前缀
     */
    public static final String INFORMATION_CATEGORY_CODE = "ICC";

    /**
     * 资讯编码前缀
     */
    public static final String INFORMATION_CODE = "IC";

    /**
     * 优惠券编码前缀
     */
    public static final String COUPON_CODE = "CC";

    /**
     * 科室人员编码前缀
     */
    public static final String PERSON_CODE = "PC";

    /**
     * 预约时间点领取上限的Redis键
     */
    public static final String PRE_APPOINTMENT_LIMIT_COUNT_KEY = "PRE_APPOINTMENT_LIMIT_COUNT_";

    /**
     * 在线客服群编号前缀
     */
    public static final String GROUP_CODE = "GRO";

    /**
     * 泉医到家平台系统业务设置系统设置编码前缀
     */
    public static final String SETTINGS_CODE = "SET";

    /**
     * 客服图片路径上传
     */
    public static final String GROUP_QR_CODE_URL = "groupQrCodeUrl";

    /**
     * 健康咨询-科室人员资质证书证书编号前缀
     */
    public static final String CERTIFICATE_CODE = "CE";

    /**
     * 健康咨询-科室人员资质证书证书编号前缀
     */
    public static final String CERTIFICATE_URL = "certificateUrl";

    /**
     * 个人签到天数Redis键
     */
    public static final String PERSONAL_SIGN_IN_DAY_KEY = "PERSONAL_SIGN_IN_DAY_";

    /**
     * 健康咨询科室人员头像地址
     */
    public static final String PERSON_PICTURE_URL = "personPictureUrl";

    /**
     * 获取 access_token 时 AppSecret 错误，或者 access_token 无效。请开发者认真比对 AppSecret 的正确性，或查看是否正在为恰当的公众号调用接口
     */
    public static final int INVALID_CREDENTIAL_ACCESS_TOKEN_ISINVALID_OR_NOT_LATEST = 40001;

    /**
     * 不合法的 OpenID ，请开发者确认 OpenID （该用户）是否已关注公众号，或是否是其他公众号的 OpenID
     */
    public static final int INVALID_OPENID = 40003;

    /**
     * 不合法的 access_token ，请开发者认真比对 access_token 的有效性（如是否过期），或查看是否正在为恰当的公众号调用接口
     */
    public static final int INVALID_ACCESS_TOKEN = 40014;

    /**
     * 不合法的 template_id
     */
    public static final int INVALID_TEMPLATE_ID = 40037;

    /**
     * 用户拒接订阅
     */
    public static final int DENY_SUBSCRIPTION = 43101;

    /**
     * 参数无效
     */
    public static final int ARGUMENT_INVALID = 47003;

    /**
     * 成功
     */
    public static final int SUCCESS_ERRCODE = 0;

    /**
     * 护理员证书资质信息表编号前缀
     */
    public static final String PERSON_CERTIFICATE_CODE = "PCE";

    /**
     * 护理人员证书地址
     */
    public static final String PERSON_CERTIFICATE_URL = "personCertificateUrl";

    /**
     * 护理站角色标识
     */
    public static final String STATION_ROLE_NAME = "stationRole";

    /**
     * 护理员角色标识
     */
    public static final String PERSON_ROLE_NAME = "nursePersonRole";

    /**
     * 无角色标识
     */
    public static final String NOT_ROLE_NAME = "notRoleName";

    /**
     * 无角色标识
     */
    public static final String STATION_AND_PERSON_ROLE_NAME = "wholeRole";

    /**
     * 培训项目logo图片路径标识
     */
    public static final String TRAINING_ITEM_COVER_URL = "trainingItemCoverUrl";

    /**
     * 培训项目海报图片路径标识
     */
    public static final String TRAINING_ITEM_POSTER_URL = "trainingItemPosterUrl";

    /**
     * 字符串空格标识
     */
    public static final String EMPTY = " ";

    /**
     * 培训课程父级id
     */
    public static final Long TRAINING_PARENT_ID = 0L;
}
