package com.hc.business.model;

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

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;


/**
 * 班次表(ClassConfig)实体类
 *
 * @author java
 * @since 2020-11-19 16:12:27
 */


@Data
@ApiModel(value = "班次表")
public class ZccmClassConfig implements Serializable {

    private static final long serialVersionUID = 627209293304274727L;


    /**
     * 地区配置编号
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @ApiModelProperty(value = "地区配置编号")
    private Integer classConfigId;

    /**
     * 班次名称名称
     */
    @ApiModelProperty(value = "班次名称名称", required = true)
    @NotNull
    private String className;

    /**
     * 培训班介绍
     */
    @ApiModelProperty(value = "培训班介绍", required = true)
    @NotNull
    private String classDesc;

    /**
     * 类型目前启用123，分表表示先上班看课+考试+打印证书 2.考试+打印证书 3只打印证书 23对应线下班
     */
    @ApiModelProperty(value = "类型目前启用123，分表表示先上班看课+考试+打印证书 2.考试+打印证书 3只打印证书 23对应线下班", required = true)
    private Integer classType;


    /**
     * 配图地址
     */
    @ApiModelProperty(value = "配图地址", required = true)
    @NotNull
    private String classLogo;

    /**
     * PC配图地址
     */
    @ApiModelProperty(value = "新PC配图地址")
    private String classContent;

    /**
     * 移动端配图地址
     */
    @ApiModelProperty(value = "移动端配图地址")
    private String classMobileContent;

    /**
     * 地区编号
     */
    @ApiModelProperty(value = "地区编号", required = true)
    @NotNull
    private Integer areaId;

    @Transient
    @ApiModelProperty(value = "地区名称")
    private String areaName;

    /**
     * 必修课学时，根据选得必修课自动计算
     */
    @ApiModelProperty(value = "必修课学时，根据选得必修课自动计算", required = true)
    private Float bxHours;

    /**
     * 选修课学时，管理员录入
     */
    @ApiModelProperty(value = "选修课学时，管理员录入", required = true)
    private Float xxHours;

    /**
     * 考试学分，考试通过自动获取
     */
    @ApiModelProperty(value = "考试学分，考试通过自动获取", required = true)
    private Float paperHours;

    /**
     * 试卷
     */
    @ApiModelProperty(value = "试卷")
    private Integer paperId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Long createTime;

    /**
     * 年份
     */
    @ApiModelProperty(value = "年份")
    private String years;

    /**
     * 单价
     */
    @ApiModelProperty(value = "单价", required = true)
    @NotNull
    private Double price;

    /**
     * 报名开始时间
     */
    @ApiModelProperty(value = "报名开始时间", required = true)
    private Long applyStartTime;

    /**
     * 报名结束时间
     */
    @ApiModelProperty(value = "报名结束时间", required = true)
    private Long applyEndTime;

    /**
     * 学习开始时间
     */
    @ApiModelProperty(value = "学习开始时间", required = true)
    private Long studyStartTime;

    /**
     * 学习结束时间
     */
    @ApiModelProperty(value = "学习结束时间", required = true)
    private Long studyEndTime;

    /**
     * 考试开始开始时间
     */
    @ApiModelProperty(value = "考试开始开始时间", required = true)
    private Long paperStartTime;

    /**
     * 考试结束时间
     */
    @ApiModelProperty(value = "考试结束时间", required = true)
    private Long paperEndTime;

    /**
     * 打印证书开始时间
     */
    @ApiModelProperty(value = "打印证书开始时间", required = true)
    private Long certStartTime;

    /**
     * 打印证书结束时间，可以不限制
     */
    @ApiModelProperty(value = "打印证书结束时间，可以不限制", required = true)
    private Long certEndTime;

    /**
     * 是否需要考试
     */
    @ApiModelProperty(value = "是否需要考试", required = true)
    @NotNull
    private Integer needPaper;

    /**
     * 是否有效
     */
    @ApiModelProperty(value = "是否有效 0 无效 1有效 ")
    private Integer valid;

    /**
     * 签证时间
     */
    @ApiModelProperty(value = "签证时间")
    private Long signTime;

    private String prefix;

}