package com.fs.store.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 用户看课统计对象 fs_user_course_count
 *
 * @author fs
 * @date 2025-04-02
 */
public class FsUserCourseCount extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 看课数量 */
    @Excel(name = "看课数量")
    private Long watchCourseCount;

    /** 缺课数量 */
    @Excel(name = "缺课数量")
    private Long missCourseCount;

    /** 缺课状态，1-已缺课；2-未缺课 */
    @Excel(name = "缺课状态，1-已缺课；2-未缺课")
    private Long missCourseStatus;

    /** 缺课天数 */
    @Excel(name = "缺课天数")
    private Long missCourseDays;

    /** 关联课程（营期）id */
    @Excel(name = "关联课程（营期）ids")
    private String courseIds;

    /** 参与营期数量 */
    @Excel(name = "参与营期数量")
    private String partCourseCount;

    /** 最后一次看课时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次看课时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastWatchDate;

    /** 用户状态，1-正常；2-停止；3-未看 */
    @Excel(name = "用户状态，1-正常；2-停止；3-未看")
    private Long status;

    /** 停课天数（如果状态是停止） */
    @Excel(name = "停课天数", readConverterExp = "如=果状态是停止")
    private Long stopWatchDays;

    /** 完播时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完播时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeWatchDate;

    /** 完播次数 */
    @Excel(name = "完播次数")
    private Long completeWatchCount;

    /** 观看次数 */
    @Excel(name = "观看次数")
    private Long watchTimes;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setWatchCourseCount(Long watchCourseCount)
    {
        this.watchCourseCount = watchCourseCount;
    }

    public Long getWatchCourseCount()
    {
        return watchCourseCount;
    }
    public void setMissCourseCount(Long missCourseCount)
    {
        this.missCourseCount = missCourseCount;
    }

    public Long getMissCourseCount()
    {
        return missCourseCount;
    }
    public void setMissCourseStatus(Long missCourseStatus)
    {
        this.missCourseStatus = missCourseStatus;
    }

    public Long getMissCourseStatus()
    {
        return missCourseStatus;
    }
    public void setMissCourseDays(Long missCourseDays)
    {
        this.missCourseDays = missCourseDays;
    }

    public Long getMissCourseDays()
    {
        return missCourseDays;
    }
    public void setCourseId(String courseId)
    {
        this.courseIds = courseId;
    }

    public String getCourseId()
    {
        return courseIds;
    }
    public void setPartCourseCount(String partCourseCount)
    {
        this.partCourseCount = partCourseCount;
    }

    public String getPartCourseCount()
    {
        return partCourseCount;
    }
    public void setLastWatchDate(Date lastWatchDate)
    {
        this.lastWatchDate = lastWatchDate;
    }

    public Date getLastWatchDate()
    {
        return lastWatchDate;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setStopWatchDays(Long stopWatchDays)
    {
        this.stopWatchDays = stopWatchDays;
    }

    public Long getStopWatchDays()
    {
        return stopWatchDays;
    }
    public void setCompleteWatchDate(Date completeWatchDate)
    {
        this.completeWatchDate = completeWatchDate;
    }

    public Date getCompleteWatchDate()
    {
        return completeWatchDate;
    }
    public void setCompleteWatchCount(Long completeWatchCount)
    {
        this.completeWatchCount = completeWatchCount;
    }

    public Long getCompleteWatchCount()
    {
        return completeWatchCount;
    }
    public void setWatchTimes(Long watchTimes)
    {
        this.watchTimes = watchTimes;
    }

    public Long getWatchTimes()
    {
        return watchTimes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("watchCourseCount", getWatchCourseCount())
            .append("missCourseCount", getMissCourseCount())
            .append("missCourseStatus", getMissCourseStatus())
            .append("missCourseDays", getMissCourseDays())
            .append("courseId", getCourseId())
            .append("partCourseCount", getPartCourseCount())
            .append("lastWatchDate", getLastWatchDate())
            .append("status", getStatus())
            .append("stopWatchDays", getStopWatchDays())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("completeWatchDate", getCompleteWatchDate())
            .append("completeWatchCount", getCompleteWatchCount())
            .append("watchTimes", getWatchTimes())
            .toString();
    }
}
