package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.entity.SysConfig;
import com.ym.mec.common.service.BaseService;

public interface SysConfigService extends BaseService<Long, SysConfig> {

    public static final String BASE_API_URL = "base_api_url";

    /**
     * 缴费状态提前{}天刷新
     */
    public static final String REFRESH_PAYMENT_STATUS_EARLY_DAYS = "refresh_payment_status_early_days";

    /**
     * VIP课结束后，用户可申诉时间，为课程结束后的{}天
     */
    public static final String VIP_APPEAL_DAYS_RANGE = "vip_appeal_days_range";

    /**
     * 线下课最早打卡时间可提前分钟数
     */
    String OFFLINE_SIGN_IN_EARLY_FORWARD_TIME = "offline_sign_in_early_forward_time";

    /**
     * 老师正常打卡时间，为课程当天，距离开课时间前{}分钟
     */
    public static final String ADVANCE_SIGN_IN_MINUTES = "advance_sign_in_minutes";

    String ADVANCE_SIGN_OUT_MINUTES = "advance_sign_out_minutes";

    /**
     * 老师可以打卡范围，为教学定位方圆{}米
     */
    public static final String ATTENDANCE_RANGE = "attendance_range";

    String ATTENDANCE_RANGE_VIP = "attendance_range_vip";

    /**
     * 学生允许请假的时间，为开课前{}小时
     */
    public static final String ADVANCE_LEAVE_HOURS = "advance_leave_hours";

    /**
     * 最早请假提前时间
     */
    String EARLIEST_TIME_FOR_LEAVE="earliest_time_for_leave";

    String ENABLE_TEACHER_COURSE_ADJUST_DEFAULT_HOURS = "enable_teacher_course_adjust_default_hours";

    /**
     * 单技课梯度结算规则设置
     */
    public static final String SIGLE_GRADIENT_SETTLEMENT_RULE = "sigle_gradient_settlement_rule";

    /**
     * 合奏课梯度结算规则设置
     */
    public static final String MAX_GRADIENT_SETTLEMENT_RULE = "max_gradient_settlement_rule";

    /**
     * 小班课梯度结算规则设置
     */
    public static final String HIGH_GRADIENT_SETTLEMENT_RULE = "high_gradient_settlement_rule";

    /**
     * 如果没有签退，{}分钟后自动发送推送信息
     */
    public static final String SIGN_OUT_MESSAGE_PUSH_MINUTE = "sign_out_message_push_minute";

    /**
     * 试听课默认单节课时长
     */
    String DEMO_GROUP_SINGLE_CLASS_MINUTES_ = "demo_group_single_class_minutes_";
    String USER_DEFAULT_HEAD_URL = "user_default_head_url";
    String STUDENT_APPLY_URL = "student_apply_url";
    String SERVER_PHONE = "server_phone";

    String MUSIC_GROUP_SETTLEMENT_CLASS_MINUTES = "music_group_settlement_class_minutes";

    String MUSIC_GROUP_SETTLEMENT_DAY = "music_group_settlement_day";

    String MUSIC_GROUP_SETTLEMENT_SINGLE_CLASS_MINUTES = "music_group_settlement_single_class_minutes";

    String REFUND_PERIOD = "refund_period";

    /**
     * 可签退时间限制(自然天)
     */
    String ENABLE_SIGN_OUT_TIME_RANGE = "enable_sign_out_time_range";

    /**
     * 可更新学生签到状态时间限制,课程结束后{}分钟
     */
    String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE = "enable_student_attendance_time_range";

    /**
     * vip课程可更新学生签到状态时间限制,课程结束后{}分钟
     */
    String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP = "enable_student_attendance_time_range_vip";

    String ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP = "enable_student_attendance_befor_course_start_time_range_vip";

    /**
     * @describe 陪练课课酬
     */
    String PRACTICE_COURSE_SALARY = "practice_course_salary";

    /**
     * @describe 陪练课时长
     */
    String PRACTICE_COURSE_MINUTES = "practice_course_minutes";

    /**
     * @describe 陪练课预约开始时间
     */
    String PRACTICE_APPLY_START_TIME = "practice_apply_start_time";

    /**
     * @describe 陪练课预约结束时间
     */
    String PRACTICE_APPLY_END_TIME = "practice_apply_end_time";

    /**
     * @describe 陪练课预约时间间隔
     */
    String PRACTICE_APPLY_INTERVAL_TIME = "practice_apply_interval_time";

    /**
     * @describe 陪练课可预约声部列表
     */
    String PRACTICE_SUBJECT_ID_LIST = "practice_subject_id_list";

    /**
     * @describe 教师请假数据
     */
    String TEACHER_LEAVE_DATA = "teacher_leave_data";

    /**
     * 十分钟内最大可发送的短信次数
     */
    String SMS_MAX_TIMES = "sms_max_times";

    /**
     * 连堂课间隔时间
     */
    String ONLINE_CONTINUE_COURSE_TIME = "online_continue_course_time";

    /**
     * 连堂课间隔时间
     */
    String AUTO_CLOSE_NETWORK_ROOM = "auto_close_network_room";

    /**
     * @describe 付费陪练课可购买最大月数
     */
    String PRACTICE_PAY_MAX_MONTH = "practice_pay_max_month";

    /**
     * @describe 付费陪练课单月上课数量
     */
    String PRACTICE_PAY_DRILL_TIMES_ON_ONE_WEEK = "practice_pay_drill_times_on_one_week";

    /**
     * @describe 付费陪练课活动截至日期
     */
    String PRACTICE_BUY_ACTIVITY_EXPIRE_DATE = "practice_buy_activity_expire_date";

    /**
     * 陪练老师端入口地址
     */
    String TEACHER_STUDY_REPORT_URL = "teacher_study_report_url";

    /**
     * 陪练课报告地址
     */
    String STUDENT_STUDY_REPORT_URL = "student_study_report_url";

    /**
     * @describe 陪练课续费地址
     */
    String PRACTICE_RENEW_URL = "practice_renew_url";

    /**
     * @describe 老师端baseUrl
     */
    String TEACHER_BASE_URL = "teacher_base_url";

    String COURSE_BEFORE_BUFFER_TIME = "course_before_buffer_time";

    String COURSE_AFTER_BUFFER_TIME = "course_after_buffer_time";

    String PRACTICE_PROMOTION_ACTIVITY_START_DATE = "practice_promotion_activity_start_date";

    String NEW_MSG_PUSH = "您收到一条作业回复，请点击查看";

    /**
     * @describe 教务端baseUrl
     */
    String EDU_TEACHER_BASE_URL = "edu_teacher_base_url";

    String HOLIDAY_SETTING = "holiday_setting";

    String PRACTICE_FREE_APPLY_EXPIRE_DATE = "practice_free_apply_expire_date";
    
    String START_TIME_OF_1111 = "start_time_of_1111";
    
    String END_TIME_OF_1111 = "end_time_of_1111";

    String VIP_SPECIAL_ACTIVITY_IDS = "vip_special_activity_ids";

    String DAYA_BASE_SALARY_AMOUNT = "daya_base_salary_amount";

    /**
     * @return com.ym.mec.biz.dal.entity.SysConfig
     * @params paramName
     * @describe 根据配置名称获取配置信息
     */
    SysConfig findByParamName(String paramName);
}
