package com.yonge.cooleshow.biz.dal.dto.search;

import com.yonge.cooleshow.biz.dal.enums.CourseGroupEnum;
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
import com.yonge.toolset.mybatis.page.QueryInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
import java.util.Date;

/**
 * Description  平台方 老师详情直播课列表查询条件
 *
 * @author liujunchi
 * @date 2022-04-18
 */
@ApiModel("平台方-老师详情-直播课列表查询条件")
public class LiveCourseGroupSearch extends QueryInfo {


    public interface StudentGroup extends Default {}
    public interface TeacherGroup extends Default{}


    @ApiModelProperty(value = "老师编号id")
    @NotNull(message = "老师编号不能为空",groups = {TeacherGroup.class})
    private Long teacherId;


    @ApiModelProperty(value = "学生编号id")
    @NotNull(message = "学生编号不能为空",groups = {StudentGroup.class})
    private Long studentId;

    @ApiModelProperty("课程编号/学员编号/学员姓名/学员手机号")
    private String search;

    @ApiModelProperty("订单号")
    private String orderNo;

    @ApiModelProperty("声部id")
    private Long subjectId;

    @ApiModelProperty("课程状态")
    private CourseGroupEnum status;

    @ApiModelProperty("开始时间")
    private Date startTime;

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

    @ApiModelProperty(value = "课程类型",hidden = true)
    private CourseScheduleEnum courseType;

    public CourseScheduleEnum getCourseType() {
        return courseType;
    }

    public void setCourseType(CourseScheduleEnum courseType) {
        this.courseType = courseType;
    }

    public Long getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    @Override
    public String getSearch() {
        return search;
    }

    @Override
    public void setSearch(String search) {
        this.search = search;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Long getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(Long subjectId) {
        this.subjectId = subjectId;
    }

    public CourseGroupEnum getStatus() {
        return status;
    }

    public void setStatus(CourseGroupEnum status) {
        this.status = status;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }
}
