package com.cirle.scientific.utils;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMultiset;
import javafx.util.Pair;

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;


/**
 * 全局常量类
 *
 * @author heihaier@mmears.com
 * Date: 2018/8/21
 * Time: 下午3:08
 */
public final class GlobalConst {

    private GlobalConst() {

    }



    /**
     * 课程持续时间，毫秒
     */
    //public static final Long COURSE_TIME_MILLIS = TimeUnit.MINUTES.toMillis(COURSER_TIME);

    /**
     * 付费产品包id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getPayProductIds
     */
    @Deprecated
    public static final List<Integer> PRODUCTIDS = ImmutableList.of(8, 9, 11, 14, 15, 17, 18, 33, 34, 35, 50, 51, 70, 71, 88, 89, 90);

//    /**
//     * 团购产品包id
//     * <p>
//     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getGroupProductIds
//     */
//    @Deprecated
//    public static final List<Integer> GROUP_ORDER_LIST = ImmutableList.of(12, 16, 19, 20, 24, 26, 27, 29, 30, 31, 32, 36,
//            38, 52, 39, 40, 53, 54, 56, 57, 59, 60, 61, 62, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 104, 105, 106, 107,
//            109, 110, 111, 113, 114, 115, 116, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 134, 135, 136, 138);

    /**
     * 试听产品包id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getTrialProductIds
     */
    @Deprecated
    public static final List<Integer> TRIAL_ORDER_LIST = ImmutableList.of(3, 7, 21, 22, 23, 43, 108, 112);

    /**
     * 优惠券id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getCouponProductIds
     */
    @Deprecated
    public static final List<Integer> COUPON_ORDER_LIST = ImmutableList.of(72);

    /**
     * 魔小兔产品包id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getMagicBunnyProductIds
     */
    @Deprecated
    public static final List<Integer> MAGIC_BUNNY_ORDER_LIST = ImmutableList.of(63, 64, 65, 66, 103);

    /**
     * 魔小兔体验包id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getMagicBunnyExperienceProductIds
     */
    @Deprecated
    public static final List<Integer> MAGIC_BUNNY_EXPERIENCE_PRODUCTS = ImmutableList.of(61, 62, 63, 103);

    /**
     * 魔小兔正式包id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getMagicBunnyNormalProductIds
     */
    @Deprecated
    public static final List<Integer> MAGIC_BUNNY_NORMAL_PRODUCTS = ImmutableList.of(64, 65, 66);

    /**
     * 定金产品id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getCouponProductIds
     */
    @Deprecated
    public static final List<Integer> DEPOSIT_PRODUCTS = ImmutableList.of(72);

    /**
     * 低价课商品id
     * <p>
     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getLowPriceProductIds
     */
    //@Deprecated
    //public static final List<Integer> LOW_PRICE_PRODUCTS = ImmutableList.of(53, 56, 57, 91, 94, 95, 96, 97, 98, 99, 102, 111, 134, 138);

    /**
     * 专题课商品id
     */
    public static final List<Integer> SPECIAL_COURSE_PRODUCTS = ImmutableList.of(39, 40, 106, 107, 109, 110);

    /**
     * 实体商品id
     */
    public static final List<Integer> ENTITY_PRODUCTS = ImmutableList.of(96, 97, 102);

    /**
     * 海底捞商品id
     */
    public static final List<Integer> HAIDILAO_PRODUCTS = ImmutableList.of(155, 156, 157, 160, 165);

    /**
     * 默认升舱天数 30
     */
    public static final Long UP_GRADE_DAY = 31L;

    /**
     * 低价课商品集合 53 56 57
     */
//    public static final List<ProductEnum> LOW_PRICE_PRODUCTIDS = ImmutableList.of(ProductEnum.LOW_PRIZE_COURSE,
//            ProductEnum.LOW_PRIZE_COURSE_V2, ProductEnum.LOW_PRIZE_COURSE_V3, ProductEnum.LOW_PRIZE_COURSE_V4,
//            ProductEnum.LOW_PRIZE_COURSE_V5, ProductEnum.LOW_PRIZE_COURSE_V6, ProductEnum.LOW_PRIZE_COURSE_V7,
//            ProductEnum.LOW_PRIZE_COURSE_V8, ProductEnum.LOW_PRIZE_COURSE_V9,
//            ProductEnum.LOW_PRIZE_COURSE_V10, ProductEnum.LOW_PRIZE_COURSE_V11, ProductEnum.LOW_PRIZE_COURSE_111,
//            ProductEnum.GROUP_BUYING_134, ProductEnum.GROUP_BUYING_138);

    /**
     * 低价课商品集合 53 56 57
     */
//    public static final ProductEnum[] LOW_PRICE_PRODUCTID_ARRAY = {ProductEnum.LOW_PRIZE_COURSE,
//            ProductEnum.LOW_PRIZE_COURSE_V2, ProductEnum.LOW_PRIZE_COURSE_V3, ProductEnum.LOW_PRIZE_COURSE_V4,
//            ProductEnum.LOW_PRIZE_COURSE_V5, ProductEnum.LOW_PRIZE_COURSE_V6, ProductEnum.LOW_PRIZE_COURSE_V7,
//            ProductEnum.LOW_PRIZE_COURSE_V8, ProductEnum.LOW_PRIZE_COURSE_V9,
//            ProductEnum.LOW_PRIZE_COURSE_V10, ProductEnum.LOW_PRIZE_COURSE_V11, ProductEnum.LOW_PRIZE_COURSE_111,
//            ProductEnum.GROUP_BUYING_134, ProductEnum.GROUP_BUYING_138};

    /**
     * 限时付费产品包id
     */
    public static final List<Integer> EXPIRE_PRODUCTIDS = ImmutableList.of(33, 50);

    /**
     * The constant MIN_TIME.
     * 1970-01-01 00:00:00
     */
    public static final LocalDateTime MIN_TIME = LocalDateTime.of(1970, 1, 1, 8, 0, 0);

    /**
     * 渠道转化率默认时间
     */
    public static final LocalDateTime CHANNEL_DEFAULT_TIME = LocalDateTime.of(1970, 1, 1, 0, 0, 0);

    /**
     * The constant MAX_TIME.
     * 9999-12-31 12:59:59
     */
    public static final LocalDateTime MAX_TIME = LocalDateTime.of(9999, 12, 31, 23, 59, 59);

    /**
     * 学生unitmask最大值
     */
    public static final long MAX_UNIT_MASK = 255;

    /**
     * level1unit1最大unitmask
     */
    public static final long L1U1_MAX_UNITMASK = 8191;

    /**
     * 延迟队列最大天数
     */
    public static final long MAX_TIMING_DAY = 40;

    /**
     * 学生平均年龄
     */
    public static final float DEFAULT_AVERAGE_AGE = 8;

    /**
     * 赠送课时模板
     */
    public static final String GIVE_COURSE_TEMPLATE = "添加理由:%s,添加记录:[赠送主课课时数=%d,赠送训练营营期=%d]";

    /**
     * 手动赠课模板（非课程包）
     */
    public static final String GIFT_COURSE_TEMPLATE = "添加理由:%s,添加记录:[赠送主课课时数=%s,赠送训练营营期=%s]";

    /**
     * 手动赠课模板(课程包)
     */
    public static final String PAY_GIFT_COURSE_TEMPLATE = "添加理由:%s,添加记录:[赠送主课课时数=%s,赠送训练营营期=%s,赠送请假次数=%s]";

    /**
     * 后台约主课操作记录模版
     */
    public static final String CUSTOMER_RECORD_TEMPLATE = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的1v4主课课程";

    /**
     * 后台约1v2主课操作记录模版
     */
    public static final String CUSTOMER_RECORD_1_V_2_TEMPLATE = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的1v2主课课程";

    /**
     * 后台约1v1主课操作记录模版
     */
    public static final String CUSTOMER_RECORD_1_V_1_TEMPLATE = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的1v1主课课程";

    /**
     * 后台约专题课操作记录模版
     */
    public static final String CUSTOMER_RECORD_TEMPLATE_SP = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的1v4专题课课程";

    /**
     * 后台约1v2专题课操作记录模版
     */
    public static final String CUSTOMER_RECORD_1_V_2_TEMPLATE_SP = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的1v2专题课课程";

    /**
     * 后台约课统一操作记录模版
     */
    public static final String CUSTOMER_BOOK_RECORD_TEMPLATE = "[优胜美地]将studentId=%d 预订在开始时间为%s(时间戳为:%d)的%s课程";

    /**
     * 学生开包提醒模板
     */
    public static final String STUDENT_COURSE_PACKAGE = " 学生：%d，该用户%s的课程将会开启%s，请务必和家长进行确认是否开启！！！";


    /**
     * 学生自主约课操作记录模版
     */
    public static final String CUSTOMER_RECORD_STUDENT = "在%s时预约%s的%s";

    /**
     * 生成优惠券模版
     */
    public static final String GENERATE_COUPON_TEMPLATE = "[优惠券类型]%s;[有效期]%s to %s;[可用次数]%d;";

    /**
     * 销售赠课source
     */
    public static final String CC_GIVE_COURSE_SOURCE = "销售手动添加";

    /**
     * 魔力币兑换主课 / 训练营
     */
    public static final String MAGIC_CONVERT_COURSE = "魔力币兑换";

    /**
     * 未转交教务时，默认cltId
     */
    public static final Long DEFAULT_CLT_ID = 0L;

    /**
     * 默认ccId
     */
    public static final Long DEFAULT_CC_ID = 0L;

    /**
     * 默认trId（外教招聘人员）
     */
    public static final Long DEFAULT_TR_ID = 0L;

    /**
     * 默认系统操作id
     */
    public static final Long DEFAULT_SYSTEM_ID = 0L;

    /**
     * 默认课程开始时间
     */
    public static final Long DEFAULT_COURSE_TIME = 0L;

    /**
     * 相差分钟数
     */
    public static final Long BETWEEN_MINUTES = 30L;

    /**
     * 周末
     */
    public static final ImmutableMultiset<Integer> WEEKEND_DAYS = ImmutableMultiset.of(6, 7);

    /**
     * 错误识别字符
     */
    public static final String ERROR_STR = "error";

    /**
     * database error
     */
    public static final String DATABASE_WRITE_ERROR = "数据库存储异常";

    /**
     * 包含测试的字典code
     */

    public static final String TESTNAMELIKE = "TestNameLike";
    /**
     * 包含测试的字典key
     */

    public static final String NAMELIKE = "nameLike";
    /**
     * level1 old unit
     */
    public static final ImmutableMultiset<Integer> LEVEL1_OLD_UNIT = ImmutableMultiset.of(6, 7, 8);

    /**
     * Default System
     */
    public static final Pair<Long, String> DEFAULT_SYSTEM = new Pair<>(0L, "系统");

    /**
     * all level1 old unit
     */
    public static final ImmutableMultiset<Integer> ALL_LEVEL1_OLD_UNIT = ImmutableMultiset.of(101, 102, 103, 1, 2, 3, 4, 5, 6, 7, 8);

    /**
     * all level4 old unit
     */
    public static final ImmutableMultiset<Integer> ALL_LEVEL4_OLD_UNIT = ImmutableMultiset.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);

    /**
     * new level1 stage2
     */
    public static final ImmutableList<Integer> NEW_STAGE2 = ImmutableList.of(202, 203, 204);

    /**
     * new level1 stage2
     */
    public static final ImmutableList<Integer> OLD_STAGE2 = ImmutableList.of(6, 7, 8);

    /**
     * 旧的unit的标识(用于level1lesson101)
     */
    public static final String OLD_UNIT_FLAG = "老";

    /**
     * 新Unit1
     */
    public final static Integer NEW_UNIT_1 = 201;

    /**
     * 旧Unit1
     */
    public final static Integer OLD_UNIT_1 = 101;

    /**
     * 逗号
     */
    public static final String COMMA = ",";

    /**
     * 退费
     */
    public static final String REFUND = "REFUND";

    /**
     * 高危
     */
    public static final String DANGER = "DANGER";

    /**
     * 超小龄
     */
    public static final String TINY_AGE = "TINY_AGE";

    /**
     * 正常学员
     */
    public static final String NORMAL = "NORMAL";

    /**
     * 屯课
     */
    public static final String STORE_CLASS = "STORE_CLASS";

    /**
     * 激活外教账号节点内容
     */
    public static final String TEACHER_MILESTONE_ACTIVATE = "第一次激活老师账号";

    /**
     * 阵营改变节点内容
     */
    public static final String TEACHER_MILESTONE_CAMP = "阵营变更为%s，当前已完成课程%d节,评分%s";

    /**
     * 主课满100节
     */
    public static final String TEACHER_MILESTONE_COURSE_COUNT_100 = "截至%s老师主课课程满100节";

    /**
     * 主课满500节
     */
    public static final String TEACHER_MILESTONE_COURSE_COUNT_500 = "截至%s老师主课课程满500节";

    /**
     * 第二职业
     */
    public static final String TEACHER_MILESTONE_SECONDARY = "拥有第二职业%s";

    /**
     * 老师发了第一次工资
     */
    public static final String TEACHER_MILESTONE_FIRST_SALARY = "老师发了第一次工资";

    /**
     * 老师上的第一节课
     */
    public static final String TEACHER_MILESTONE_FIRST_COURSE = "%s上了第一节%s，培训学员为%s";

    /**
     * 老师基本信息变更记录模
     */
    public static final String TEACHER_CHANGE_BASE_INFO = "老师信息从 %s修改为 %s";

    public static final String TEACHER_INFO_NAME = "名字：%s ";

    public static final String TEACHER_INFO_GENDER = "性别：%s ";

    public static final String TEACHER_INFO_NATION = "国籍：%s ";

    public static final String TEACHER_INFO_BIRTHDAY = "出生日期：%s ";

    public static final String TEACHER_INFO_STATE = "州：%s ";

    /**
     * 老师第二职业信息变更记录模版
     */
    public static final String TEACHER_CHANGE_SECONDARY_POSITION = "老师第二职业从 %s 修改为 %s";

    /**
     * 老师阵营修改模版
     */
    public static final String TEACHER_CHANGE_CAMP = "老师阵营从 %s 修改为 %s";

    /**
     * 老师族裔修改模版
     */
    public static final String TEACHER_CHANGE_RACE = "老师族裔从 %s 修改为 %s";

    /**
     * 老师level的修改模版
     */
    public static final String TEACHER_CHANGE_LEVELS = "老师匹配Level从 %s 修改为 %s";

    /**
     * 外教预约standby
     */
    public static final String TEACHER_BOOK_STANDBY = "预约standby，课程时间：%s";

    /**
     * 取消外教的standby
     */
    public static final String TEACHER_CANCEL_STANDBY = "取消standby，课程时间：%s";

    /**
     * 老师联系方式变更记录模版
     */
    public static final String TEACHER_CHANGE_CONTACT = "老师联系方式从 %s修改为 %s";

    public static final String TEACHER_INFO_SKYPE = "skype：%s ";

    public static final String TEACHER_INFO_ADDRESS = "联系地址：%s ";

    public static final String TEACHER_INFO_PHONE = "联系电话：%s ";

    public static final String TEACHER_INFO_OFTEN_USE_EMAIL = "常用邮箱：%s ";

    public static final String TEACHER_INFO_ZIPCODE = "邮编：%s ";

    /**
     * 老师权限变更记录模版
     */
    public static final String TEACHER_CHANGE_PERMISSION = "老师权限从 %s修改为 %s";

    public static final String TEACHER_INFO_STATUS = "账号状态：%s ";

    public static final String TEACHER_INFO_ATTRIBUTE = "账号属性：%s ";

    public static final String TEACHER_INFO_PERMISSION = "开课权限：%s ";

    /**
     * 老师监课权限变更记录模版
     */
    public static final String TEACHER_CHANGE_PERMISSION_SUPERVISE = "老师监课权限从 %s修改为 %s";

    /**
     * 老师支付信息变更记录模版
     */
    public static final String TEACHER_CHANGE_PAY_INFO = "从[%s] 修改为 [%s]";

    /**
     * 老师支付信息新增记录模版
     */
    public static final String TEACHER_ADD_PAY_INFO = "添加银行卡信息，%s";

    public static final String TEACHER_PAY_INFO_BANK = "开户行：%s ,";

    public static final String TEACHER_PAY_INFO_ACCOUNT_NAME = "账户名：%s ,";

    public static final String TEACHER_PAY_INFO_ACCOUNT_NUMBER = "账号：%s ,";

    public static final String TEACHER_PAY_INFO_SWIFT_CODE = "SWIFT CODE：%s ,";

    public static final String TEACHER_PAY_INFO_BANK_ADDRESS = "开户行地址：%s ,";

    public static final String TEACHER_PAY_INFO_PAYPAL = "paypal账户邮：%s ,";

    public static final String TEACHER_PAY_INFO_ROUTING_NUMBER = "银行路由号：%s ,";

    /**
     * 禁用老师账号操作记录模版
     */
    public static final String TEACHER_STATUS_DISABLE = "禁用该老师账号, 截止时间: %s  ---> 禁用原因: %s";

    public static final String TEACHER_STATUS_DISABLE_TIME = "永久";
    /**
     * 激活老师账号操作记录模版
     */
    public static final String TEACHER_STATUS_ACTIVE = "激活该老师账号";
    /**
     * 老师招聘状态操作记录模版
     */
    public static final String INTERVIEW_STATUS_CHANGE = "将招聘状态由%s改为%s";

    /**
     * 主课时长（毫秒）
     */
    public static final Integer MAIN_CLASS_PERIOD_MILLISECONDS = 25 * 60 * 1000;

    /**
     * 默认userSupportId
     */
    public static final Long DEFAULT_USER_SUPPORT_ID = -1L;

    /**
     * 默认TOP设置人数
     */
    public static final Long DEFAULT_TOP_NUM = 0L;

    /**
     * 默认Long值
     */
    public static final Long DEFAULT_LONG_VALUE = 0L;

    /**
     * 默认Integer值
     */
    public static final Integer DEFAULT_INTEGER_VALUE = 0;

    /**
     * 默认Integer增加值
     */
    public static final Integer DEFAULT_INTEGER_ADD_VALUE = 1;

    /**
     * 默认Long增加值
     */
    public static final Long DEFAULT_LONG_ADD_VALUE = 1L;

    /**
     * 默认Float值
     */
    public static final Double DEFAULT_DOUBLE_VALUE = 0.0;

    /**
     * 默认String值
     */
    public static final String DEFAULT_STRING_VALUE = "0.00";

    /**
     * 课程包无限期 Infinite
     */
    public static final LocalDateTime INFINITE_DATE = LocalDateTime.of(2050, 12, 31, 23, 59, 59);

    /**
     * 一天的最大时间，精确到秒，防止到毫秒导致数据库四舍五入保存为第二天
     */
    public static final LocalTime LOCAL_TIME_MAX = LocalTime.of(23, 59, 59);

    /**
     * 教务等级黑名单（不统计相关登记人员）
     */
    //public static final List<CltGradeEnum> cltGradeBlackList = ImmutableList.of(CltGradeEnum.TEST_EDUCATOR, CltGradeEnum.RECRUIT_EDUCATOR);

    public static final Integer SPECIAL_LEVEL_START = 50000;

    public static final String CURRENCY_COURSE_TIME = "courseTime=";

    /**
     * 百分之100
     */
    public static final Long PERCENT_HUNDRED = 10000L;

    /**
     * 钉钉应用自用标识
     */
    public static final String DINGDING_MMEARS_ID = "mmears";

    /**
     * 钉钉应用标识 新外教公司
     */
    public static final String DINGDING_MMEARS_ID_HK = "mmears-hk";

    /**
     * 非线上环境默认发送用户
     */
    public static final String DEFAULT_DINGDING_USERID = "0133694640793804";

    /**
     * 非线上环境教务默认发送用户
     */
    public static final String DEFAULT_DINGDING_CLT_USERID = "186136182626067487";

    /**
     * 注册轮单钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_REGISTER_TEMP = "%s, 新例子流入请及时跟进, 学员ID：%s";
    public static final String DINGDING_MESSAGE_BUNNY_REGISTER_TEMP = "%s, 魔小兔新例子流入请及时跟进, 学员ID：%s";

    public static final String DINGDING_MESSAGE_REGISTER_LIKNED = "（请注意该leads与学员%s有账号关联）";

    /**
     * 转leads钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_SALE_TRANSFER_LEADS = "%s, 销售（%s)转交新leads请及时跟进，学生ID：%s";

    public static final String DINGDING_MESSAGE_JW_TRANSFER_LEADS = "%s, 教务（%s)转交新leads请及时跟进，学生ID：%s";

    public static final String TRANSFER_LINKED_LOCK_FAIL = "关联账号%s，处于锁定状态，转交失败。";

    /**
     * 注册学员保底策略扔公海消息模版
     */
    public static final String DINGDING_MESSAGE_TRANSFER_BROADOCEAN_TEMP = "%s, 学员ID：%s ,流入公海";

    /**
     * 一天多少秒
     */
    public static final Double SECONDS_OF_DAY = 24 * 60 * 60D;

    /**
     * 开包时间距离退费时间默认天数
     */
    public static final Integer DEFAULT_INTERVAL_DAY = 60;

    /**
     * 预约沟通钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_10_APPOINT_TEMP = "请于10分钟后联系学员ID：%s，预约沟通时间：%s。";

    public static final String DINGDING_MESSAGE_APPOINT_TEMP = "请联系学员ID：%s，预约沟通时间：%s。";

    /**
     * 2050年的时间戳
     */
    public static final LocalDateTime CURRENCY_END_TIME = LocalDateTimeUtil.getDateTimeOfTimestamp(2556115199000L);

    /**
     * morder productJson
     */
    public static final String SOURCE_NAME = "name";

    /**
     * 支付异常
     */
    public static final String PAY_EXCEPTION = "ZHIFUYICHANG";

//    /**
//     * 用于商品展示顺序排序
//     * <p>
//     * 请调此接口获取id: com.mmears.shop.api.service.IProductService#getProductSortedWeightMap
//     */
//    @Deprecated
//    public static final HashMap<ProductEnum, Integer> PRODUCT_WEIGHT = new HashMap<ProductEnum, Integer>() {
//        {
//            put(ProductEnum.TRAIN_COURSE, 0);
//            put(ProductEnum.TRAIN_RISE_BASE_COURSE, 1);
//            put(ProductEnum.UPGRADE_TRAIN_TO_HEGEMONY_COURSE, 2);
//            put(ProductEnum.INTERNAL_COURSE, 3);
//            put(ProductEnum.INTERNAL_RISE_BASE_COURSE, 4);
//            put(ProductEnum.YEAR_COURSE, 5);
//            put(ProductEnum.UPGRADE_BIG_COURSE, 6);
//            put(ProductEnum.UPGRADE_BASE_TO_HEGEMONY_COURSE, 7);
//            put(ProductEnum.TWO_YEARS_COURSE, 8);
//            put(ProductEnum.UPGRADE_THREE_YEAR_COURSE, 9);
//            put(ProductEnum.THREE_YEARS_COURSE, 10);
//            put(ProductEnum.YEAR_LEARN_COURSE, 11);
//            put(ProductEnum.UPGRADE_YEAR_COURSE, 12);
//            put(ProductEnum.SEASON_COURSE, 13);
//            put(ProductEnum.UNOBSTRUCTED_LEARNING365, 14);
//            put(ProductEnum.UPGRADE_365_TO_TWO_YEAR_COURSE, 15);
//        }
//    };
    /**
     * 微信机器人断开连接
     * 系统自动丢结业池钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_SYS_TRANSFER_GRADUATE = "学员%s，因0/0.5课时超过30天未再续费，系统已自动将该用户丢结业池，请知悉。";

    /**
     * 结业池用户约课钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_GRADUATE_BOOK = "结业池用户%s，进行了约课操作，请查看是否需要安排人员服务。";

    /**
     * 结业池用户付费钉钉消息模版
     */
    public static final String DINGDING_MESSAGE_GRADUATE_PAID = "结业池学员%s，自主付费，已分配到你名下。请安排教务人员跟进。";

    /**
     * 课程时间段下架的钉钉通知
     */
    public static final String DINGDING_MESSAGE_CYCLE_INVALID = "因9月1日将下架部分上课时间段，您名下的周期约课学生%s将受到影响，请提前联系家长进行计划变更。请知悉！";


    /**
     * 微信机器人建立连接
     */
    public static final String WX_ROBOT_CONNECT = "微信机器人[wxId:%s]建立连接,[env:%s],[time:%s],[sessionId:%s],[nickName:%s]";

    /**
     * 微信机器人断开连接
     */
    public static final String WX_ROBOT_DISCONNECT = "微信机器人[wxId:%s]断开连接,[env:%s],[time:%s],[sessionId:%s],[nickName:%s]";

    /**
     * 微信机器人批量断开连接
     */
    public static final String WX_ROBOT_BATCH_DISCONNECT = "微信机器人全部下线,[Environment:%s],[time:%s],[%s]";

    /**
     * 用户同意用户协议模版
     */
    public static final String USER_AGREE_PROTOCOL = "用户在%s，同意了%s";

    /**
     * 生成新优惠券模版
     */
    public static final String GENERATE_NEW_COUPON_TEMPLATE = "[优惠券] %s(%d); [有效期]%s to %s;";

    /**
     * 提醒销售转交教务钉钉消息模板
     */
    public static final String DINGDING_TRANSFER_TO_CLT_MESSAGE = "学生：%s，用户已付费请转交售后，超过%s小时，系统将自动转交。";

    /**
     * 提醒销售自动转交教务钉钉消息模板
     */
    public static final String DINGDING_AUTO_TRANSFER_TO_CLT_MESSAGE = "学生：%s，用户付费已超过%s小时，系统已自动转交售后。";

    /**
     * 提醒销售为付费用户安排试听课消息模板
     */
    public static final String DINGDING_TRAIL_CLASS_MESSAGE = "学生：%s，用户已付费但未完成试听，请尽快安排家长进行试听。";

    /**
     * 老带新分单圈
     */
    public static final Long ROTATION_OLD_BELT_NEW = 0L;

    /**
     * 2.找不到老生[不限制,注册后直接分单] -2
     * 3.限制,根据填写结果分单,未配置分单圈 -2
     */
    public static final Long ROTATION_OLD_BELT_NEW_ERROR = -2L;

    /**
     * 配置分单圈 xyz*1000000
     */
    public static final Long ROTATION_OLD_BELT_NEW_BASE = 1000000L;

    /**
     * 1.[不限制,注册后直接分单] 渠道码
     * 2.限制,根据填写结果分单,未配置分单圈 渠道码,配置分单圈, xyz*10000000
     */
    public static final Long ROTATION_CHANNEL_BASE = 10000000L;

    /**
     * 暂存池预警消息模板
     */
    public static final String DINGDING_PRE_STORAGE_MESSAGE = "重要提醒：新注册leads分配已达上限，目前已经转入暂存池，请及时查看。";

    /**
     * 团购赠送魔力币code集合
     */
    /**
     * 优惠券撤回模版
     */
    public static final String COUPON_WITHDRAW_MESSAGE = "[优惠券撤回]订单号:%s,于%s执行了撤回操作。";

    /**
     * 老带新分单策略sort
     */
    public static final Long RECOMMEND_ROTATION_SORT = -6L;

    /**
     * 渠道全局分单策略sort
     */
    public static final Long CHANNEL_GLOBAL_ROTATION_SORT = -7L;

    /**
     * 试听课等级起始值
     */
    public static final Integer TRAIL_LEVEL_START = 70000;

    /**
     * 产品资源类型 AI
     */
    public static final String PRODUCT_SOURCE_AI = "AI";

    /**
     * 产品资源类型 LIVE
     */
    public static final String PRODUCT_SOURCE_LIVE = "LIVE";

    /**
     * 优惠券撤回模版2
     */
    public static final String COUPON_WITHDRAW_MESSAGE_V2 = "[优惠券撤回]优惠券唯一标示:%s,于%s执行了撤回操作。";

    /**
     * 自主注册渠道码
     */
    public final static String DEFAULT_CREATE_REFERRAL_CODE = "1911190016";

    /**
     * 默认的手机号码区号
     */
    public final static String DEFAULT_PHONE_AREA_CODE = "86";

}
