package com.fs.course.config;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.List;

@Data
public class CourseConfig implements Serializable {
    private Integer answerRate; //可答题百分比
    private Integer answerErrorCount; //允许错误次数
    private Integer videoLinkExpireDate; //课程小节短链过期时间
    private Integer maxBufferLength;//最大缓冲时长
    private Integer videoIntegral;//每十分钟获取多少积分
    private Integer answerIntegral;//答题获得积分
    private Integer defaultLine;//默认看课线路
    private String realLinkDomainName;//真链域名
    private String authDomainName;//网页授权域名
    private String smsDomainName;//短信推送域名
    private String smsDomain;//短信推送域名
    private String mpAppId;//看课公众号APPID
    private String registerDomainName;//注册域名
    private String courseDomainName;//链接域名
    private String miniprogramAppid;//链接域名
    private Integer rewardType; // 奖励类型 1红包 2积分 3红包+积分
    private Integer redPacketMode;//红包模式 1总公司 2销售公司
    private BigDecimal moneyPri;//充值手续费百分比
    private BigDecimal redPackageMoney;//充值手续费百分比
    private List<DisabledTimeVo> disabledTimeList;//充值手续费百分比
    private Integer completionMode; // 完课模式
    private Integer minutesNum; //多少分钟算完课
    private Integer openCommentStatus; //开启评论/弹幕
    private Integer viewCommentNum; // 查看历史评论数量
    private Long sendDelayTime; // 查看发送延时时间

    private String companyUserQRCode;// 默认客服二维码图片
    private String courseLogo;//课程Logo
    private String sidebarImageUrl;//侧边栏公共图
    private Integer delayStart;
    private Integer delayEnd;
    private Integer isNegative;//是否为负数 0、不允许，1、允许

    /**
     * 小程序授权头像昵称方式（目前仅会员看课有效）
     * 1：小程序原生授权 2：跳转H5服务号授权
     */
    private Integer miniAppAuthType;
    /**
     * 会员看课
     * 小程序授权头像昵称，跳转H5服务号授权域名
     */
    private String userCourseAuthDomain;

    /**
     * 会员看课
     * 炮灰看课发红包-服务号发
     */
    private String userCourseH5Reward;

    /**
     * 是否绑定
     */
    private Boolean isBound;
    private Boolean dept;
    /**
     * 是否单销售观看（只能在第一次绑定的销售头上看课）
     */
    private boolean oneCompanyCourse;

    /**
     * 是否开启IM
     */
    private Boolean isOpenIM;


    @Data
    public static class DisabledTimeVo{
        @JsonFormat(pattern = "HH:mm")
        private LocalTime startDisabledTime;
        @JsonFormat(pattern = "HH:mm")
        private LocalTime endDisabledTime;
    }

}
