package com.yonge.cooleshow.biz.dal.wrapper.course;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class CourseScheduleWrapper {



    @Data
    public static class LiveRoomTime implements Serializable {

        @ApiModelProperty(value = "直播间房间号")
        private String liveRoomUid;

        @ApiModelProperty(value = "声部ID")
        private String subjectId;
        @ApiModelProperty(value ="直播延长时间")
        private String autoCloseNetworkRoomTime = "0";
        @ApiModelProperty("服务器时间 毫秒")
        private long timestamp;

        @ApiModelProperty("直播时间")
        private List<CourseTimeInfoBean> courseScheduleTimes;
    }

    @Data
    public static class CourseTimeInfoBean {

        @ApiModelProperty(value = "开始时间")
        private long startTime;

        @ApiModelProperty("结束时间")
        private long endTime;
    }

    @Data
    public static class MyCourseVo{
        @ApiModelProperty(value = "上课日期")
        private Date classDate;

        @ApiModelProperty(value = "上课时间")
        private Date startTime;

        @ApiModelProperty(value = "下课时间")
        private Date endTime;

        @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
        private String status;

        @ApiModelProperty(value = "课程组id")
        private Long courseGoupId;

        @ApiModelProperty(value = "课程组名称")
        private String courseGroupName;

        @ApiModelProperty(value = "课程id")
        private Long courseId;

        @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
        private Boolean attendanceStatus;

        @ApiModelProperty(value = "声部编号")
        private Long subjectId;

        @ApiModelProperty(value = "声部名称")
        private String subjectName;

        @ApiModelProperty(value = "学员列表")
        private List<CourseStudentVo> courseStudentVos;
    }

    @Data
    public static class StudentCourseList{
        @ApiModelProperty(value = "上课日期")
        private Date classDate;

        @ApiModelProperty(value = "上课时间")
        private Date startTime;

        @ApiModelProperty(value = "下课时间")
        private Date endTime;

        @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
        private String status;

        @ApiModelProperty(value = "课程组id")
        private Long courseGoupId;

        @ApiModelProperty(value = "课程组名称")
        private String courseGroupName;

        @ApiModelProperty(value = "课程id")
        private Long courseId;

        @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
        private Boolean attendanceStatus;

        @ApiModelProperty(value = "声部编号")
        private Long subjectId;

        @ApiModelProperty(value = "声部名称")
        private String subjectName;

        @ApiModelProperty(value = "老师id")
        private Long userId;

        @ApiModelProperty(value = "用户姓名")
        private String userName;

        @ApiModelProperty(value = "头像地址")
        private String avatar;

        @ApiModelProperty(value = "IM聊天用户ID")
        private String imUserId;
    }


    @Data
    public static class CourseStudentVo{
        @ApiModelProperty(value = "用户id")
        private Long userId;

        @ApiModelProperty(value = "用户姓名")
        private String userName;

        @ApiModelProperty(value = "头像地址")
        private String avatar;

        @ApiModelProperty(value = "IM聊天用户ID")
        private String imUserId;
    }


    @Data
    public static class CourseQuery{
        @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
        private String status;

        @ApiModelProperty(value = "上课月份")
        private String classMonth;

        @ApiModelProperty(value = "课程组编号")
        private Long courseGroupId;

        @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
        private Boolean attendanceStatus;

        @ApiModelProperty(value = "学员编号")
        private Long studentId;
    }
}
