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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.entity.CourseScheduleDate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Author: cy
 * @Date: 2022/4/20
 */
@ApiModel(value = "PracticeScheduleDto")
public class PracticeScheduleDto implements Serializable {
    @ApiModelProperty(value = "课程组id")
    private Long groupId;
    @ApiModelProperty(value = "学生id")
    private Long studentId;
    @ApiModelProperty(value = "老师id")
    private Long teacherId;
    @ApiModelProperty(value = "类型 practice陪练课 live直播课")
    private String type;
    @ApiModelProperty(value = "课程组名称")
    private String courseGroupName;
    @ApiModelProperty(value = "声部id")
    private Long subjectId;
    @ApiModelProperty(value = "单课时长")
    private Integer singleCourseMinutes;
    @ApiModelProperty(value = "课程数")
    private Integer courseNum;
    @ApiModelProperty(value = "课程介绍")
    private String courseIntroduce;
    @ApiModelProperty(value = "课程组售价")
    private BigDecimal coursePrice;
    @ApiModelProperty(value = "课程单价")
    private BigDecimal unitPrice;
    @ApiModelProperty(value = "课程组状态 ING进行中 COMPLETE已完成 DISSOLVE-未成课(解散课程) CANCEL已取消-未开始报名前可取消 APPLY报名中 NOT_SALE未开售")
    private String status;
    @ApiModelProperty(value = "最少成课人数")
    private Integer mixStudentNum;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "课程开始时间")
    private Date courseStartTime;
    @ApiModelProperty(value = "上课时间")
    private List<CourseScheduleDate> classTime;

    public BigDecimal getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }

    public Long getStudentId() {
        return studentId;
    }

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

    public Long getTeacherId() {
        return teacherId;
    }

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

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getCourseGroupName() {
        return courseGroupName;
    }

    public void setCourseGroupName(String courseGroupName) {
        this.courseGroupName = courseGroupName;
    }

    public Long getSubjectId() {
        return subjectId;
    }

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

    public Integer getSingleCourseMinutes() {
        return singleCourseMinutes;
    }

    public void setSingleCourseMinutes(Integer singleCourseMinutes) {
        this.singleCourseMinutes = singleCourseMinutes;
    }

    public Integer getCourseNum() {
        return courseNum;
    }

    public void setCourseNum(Integer courseNum) {
        this.courseNum = courseNum;
    }

    public String getCourseIntroduce() {
        return courseIntroduce;
    }

    public void setCourseIntroduce(String courseIntroduce) {
        this.courseIntroduce = courseIntroduce;
    }

    public BigDecimal getCoursePrice() {
        return coursePrice;
    }

    public void setCoursePrice(BigDecimal coursePrice) {
        this.coursePrice = coursePrice;
    }

    public String getStatus() {
        return status;
    }

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

    public Integer getMixStudentNum() {
        return mixStudentNum;
    }

    public void setMixStudentNum(Integer mixStudentNum) {
        this.mixStudentNum = mixStudentNum;
    }

    public Date getCourseStartTime() {
        return courseStartTime;
    }

    public void setCourseStartTime(Date courseStartTime) {
        this.courseStartTime = courseStartTime;
    }

    public List<CourseScheduleDate> getClassTime() {
        return classTime;
    }

    public void setClassTime(List<CourseScheduleDate> classTime) {
        this.classTime = classTime;
    }
}