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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
import com.yonge.cooleshow.biz.dal.valid.AddGroup;
import com.yonge.cooleshow.biz.dal.valid.SelectGroup;
import com.yonge.toolset.base.page.QueryInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author: cy
 * @date: 2022/3/30 11:32
 */
@ApiModel(value = "VideoLessonGroupSearch", description = "视频课组列表查询")
public class VideoLessonSearch extends QueryInfo {
    @ApiModelProperty(value = "视频组id")
    @NotNull(groups = {SelectGroup.class}, message = "视频组id不能为空")
    private Long videoLessonGroupId;

    @ApiModelProperty(value = "用户id")
    @NotNull(groups = {AddGroup.class}, message = "用户id不能为空")
    private Long userId;

    @ApiModelProperty(value = "课程编号/课程组名称/老师编号/老师姓名/老师手机")
    private String search;

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

    @ApiModelProperty("课程声部")
    private String lessonSubject;

    @ApiModelProperty(value = "审核状态(DOING:待审核 PASS:通过 UNPASS:未通过)")
    private AuthStatusEnum auditStatus;

    @ApiModelProperty(value = "申请开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value = "申请结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty(value = "是否上架 （0:否  1：是）")
    private Integer shelvesFlag;

    public Long getVideoLessonGroupId() {
        return videoLessonGroupId;
    }

    public void setVideoLessonGroupId(Long videoLessonGroupId) {
        this.videoLessonGroupId = videoLessonGroupId;
    }

    public Long getUserId() {
        return userId;
    }

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

    @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 String getLessonSubject() {
        return lessonSubject;
    }

    public void setLessonSubject(String lessonSubject) {
        this.lessonSubject = lessonSubject;
    }

    public AuthStatusEnum getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(AuthStatusEnum auditStatus) {
        this.auditStatus = auditStatus;
    }

    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 Integer getShelvesFlag() {
        return shelvesFlag;
    }

    public void setShelvesFlag(Integer shelvesFlag) {
        this.shelvesFlag = shelvesFlag;
    }
}
