package com.fs.course.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 会员营期对象 fs_user_course_period
 *
 * @author fs
 * @date 2025-04-15
 */
@Data
public class FsUserCoursePeriod
{
    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private Integer pageNum;

    @TableField(exist = false)
    private Integer pageSize;

    /** 营期id */
    private Long periodId;

    /** 营期名称 */
    @Excel(name = "营期名称")
    private String periodName;

    /** 公司id */
    @Excel(name = "公司id")
    private String companyId;

    /** 训练营id */
    @Excel(name = "训练营id")
    private Long trainingCampId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间")
    private LocalDateTime createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间")
    private LocalDateTime updateTime;

    /** 课程风格url */
    @Excel(name = "课程风格url")
    private String courseStyle;

    /** 直播间风格url */
    @Excel(name = "直播间风格url")
    private String liveRoomStyle;

    /** 红包发放方式，1-按课程，每个课程可得一个；2-按营期，每个营期可得一个 */
    @Excel(name = "红包发放方式，1-按课程，每个课程可得一个；2-按营期，每个营期可得一个")
    private Long redPacketGrantMethod;

    /** 营期类型，1-多课程营期；2-单课程营期 */
    @Excel(name = "营期类型，1-多课程营期；2-单课程营期")
    private Long periodType;

    /** 开营日期-开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开营日期-开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDate periodStartingTime;

    /** 开营日期-结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开营日期-结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDate periodEndTime;

    /** 营期状态，1-未开始，2-进行中，3-已结束 */
    @Excel(name = "营期状态，1-未开始，2-进行中，3-已结束")
    private Long periodStatus;

    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "开始看课时间")
    private LocalTime viewStartTime;

    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "结束看课时间")
    private LocalTime viewEndTime;

    @JsonFormat(pattern = "HH:mm:ss")
    @Excel(name = "领取红包结束时间")
    private LocalTime lastJoinTime;

    @TableField(exist = false)
    private List<Long> companyIdList;

    private Integer maxViewNum;

    @Excel(name = "开启评论或者弹幕，1-开启评论；2-开启弹幕；3-都关闭")
    private Integer openCommentStatus;
    @Excel(name = "开启评论或者弹幕，1-开启评论；2-开启弹幕；3-都关闭")
    private String courseLogo;

    /**
     * 删除状态0、正常，1、已删除
     */
    private Integer delFlag;

    /**
     * 营期线，即营期首次播放课程的日期
     */
    private Date periodLine;

    private Long courseId;

    /**
     * 自由学习模式，0-未开启，1-开启（开启后学员不受营期时间限制）
     */
    @Excel(name = "自由学习模式")
    private Integer freeMode;

    /** 是否需要单独注册会员，1-是，0-否（用于个微销售分享看课） */
    private String isNeedRegisterMember;

    // 控制休息提示是否打开要暂停  0-关闭 1-打开 null-默认打开
    private Integer IsOpenRestReminder;
    //  控制休息提示是否打开要暂停  0-关闭 1-打开 Json串 key值为companyId
    private String isOpenRestFlag;
}
