package com.yonge.cooleshow.biz.dal.vo;

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

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

/**
 * @Author: cy
 * @Date: 2022/4/22
 */
@ApiModel(value = "StudentHomePage")
@Data
public class StudentHomePage implements Serializable {
    @ApiModelProperty(value = "直播课")
    private List<Live> liveList;
    @ApiModelProperty(value = "视频课")
    private List<Video> videoList;
    @ApiModelProperty(value = "最近课程")
    private RecentCourses recentCourses;

    @Data
    public static class RecentCourses{
        @ApiModelProperty(value = "学生id")
        private Long studentId;
        @ApiModelProperty(value = "老师id")
        private Long teacherId;
        @ApiModelProperty(value = "老师姓名")
        private String teacherName;
        @ApiModelProperty(value = "老师头像")
        private String avatar;
        private String realName;

        @ApiModelProperty(value = "课程id")
        private Long courseId;
        @ApiModelProperty(value = "课程组id")
        private Long courseGroupId;
        @ApiModelProperty(value = "课程组名称")
        private String courseGroupName;
        @ApiModelProperty(value = "课程类型(PRACTICE趣纠课 LIVE直播课 PIANO_ROOM_CLASS琴房课)")
        private String courseType;
        @ApiModelProperty(value = "课程状态(NOT_START未开始 ING进行中 )")
        private String status;
        @ApiModelProperty(value = "开课时间")
        private Date courseStartTime;
        @ApiModelProperty(value = "结束时间")
        private Date courseEndTime;

        @ApiModelProperty(value = "本周未上课程数")
        private Integer notStartCount;
    }

    @Data
    public static class Live {
        @ApiModelProperty(value = "老师id")
        private Long teacherId;
        @ApiModelProperty(value = "老师姓名")
        private String teacherName;
        private String realName;
        @ApiModelProperty(value = "老师头像")
        private String avatar;

        @ApiModelProperty(value = "课程组id")
        private Long courseGroupId;
        @ApiModelProperty(value = "课程组名称")
        private String courseGroupName;
        @ApiModelProperty(value = "课程组售价")
        private BigDecimal courseGroupPrice;
        @ApiModelProperty(value = "开课时间")
        private Date courseStartTime;
        @ApiModelProperty(value = "直播背景图")
        private String backgroundPic;
        @ApiModelProperty(value = "课程数")
        private Integer courseNum;
        @ApiModelProperty(value = "购买人数")
        private Integer buyCount;
        @ApiModelProperty(value = "声部id")
        private Integer subjectId;
        @ApiModelProperty(value = "声部名称")
        private String subjectName;
    }

    @Data
    public static class Video {
        @ApiModelProperty(value = "老师id")
        private Long teacherId;
        @ApiModelProperty(value = "老师姓名")
        private String teacherName;
        private String realName;
        @ApiModelProperty(value = "老师头像")
        private String avatar;

        @ApiModelProperty(value = "视频课组id")
        private Long videoGroupId;
        @ApiModelProperty(value = "视频课组名称")
        private String videoGroupName;
        @ApiModelProperty(value = "视频课组售价")
        private BigDecimal lessonPrice;
        @ApiModelProperty(value = "创建时间")
        private Date createTime;
        @ApiModelProperty(value = "课程封面")
        private String lessonCoverUrl;
        @ApiModelProperty(value = "课程数")
        private Integer lessonCount;
        @ApiModelProperty(value = "声部id")
        private Integer subjectId;
        @ApiModelProperty(value = "声部名称")
        private String subjectName;
        @ApiModelProperty(value = "购买人数")
        private Integer buyCount;
    }
}

