package com.sv.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.sv.json.LocalTimeSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.Date;

/**
 * Entity - 场馆课程
 *
 * @author zhaoziyu
 * @since 2018-08-06
 */
public class VenueLesson implements Serializable {


    /**
     * 
     */
    private Integer id;

    /**
     * 场馆类型
     */
    private Integer venueType;

    /**
     * 场馆ID
     */
    private Integer venueId;

    /**
     * 课程名称
     */
    private String name;

    /**
     * 上课日期 2018-03-30
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date date;

    /**
     * 课程开始时间 8
     */
    @DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
    @JsonSerialize(using= LocalTimeSerializer.class)
    private LocalTime startTime;

    /**
     * 课程结束时间 12
     */
    @DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
    @JsonSerialize(using= LocalTimeSerializer.class)
    private LocalTime endTime;

    /**
     * 课程总数量
     */
    private Integer num;

    /**
     * 销售数量
     */
    private Integer saleNum;

    /**
     * 教练ID
     */
    private Integer coachId;

    /**
     * 签到二维码
     */
    private String qrCode;

    /**
     * 课程描述
     */
    private String description;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 状态：0草稿 1上架
     */
    private Integer status;

    /**
     * 课程类型：0普通课程 1公益课程
     */
    private Integer type;

    /**
     * 平台来源ID
     */
    private Integer platformId;

    /**
     * 注意事项
     */
    private String note;

    /**
     * 创建者编号
     */
    private Integer createdId;

    /**
     * 创建者编号
     */
    private Integer modifiedId;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 更新时间
     */
    private Date modifiedTime;

    /**
     * 删除标识位
     *
     * @see com.ydd.framework.core.entity.enums.DeletedEnum
     */
    private Integer deleted;



    /**
     * 设置
     *
     * @param id 
     */
    public void setId(Integer id){
        this.id = id;
    }

    /**
     * 获取
     *
     * @return 
     */
    public Integer getId(){
        return id;
    }


    /**
     * 设置场馆类型
     *
     * @param venueType 场馆类型
     */
    public void setVeneuType(Integer venueType){
        this.venueType = venueType;
    }

    /**
     * 获取场馆类型
     *
     * @return 场馆类型
     */
    public Integer getVeneuType(){
        return venueType;
    }


    /**
     * 设置场馆ID
     *
     * @param venueId 场馆ID
     */
    public void setVenueId(Integer venueId){
        this.venueId = venueId;
    }

    /**
     * 获取场馆ID
     *
     * @return 场馆ID
     */
    public Integer getVenueId(){
        return venueId;
    }


    /**
     * 设置课程名称
     *
     * @param name 课程名称
     */
    public void setName(String name){
        this.name = name;
    }

    /**
     * 获取课程名称
     *
     * @return 课程名称
     */
    public String getName(){
        return name;
    }


    /**
     * 设置上课日期 2018-03-30
     *
     * @param date 上课日期 2018-03-30
     */
    public void setDate(Date date){
        this.date = date;
    }

    /**
     * 获取上课日期 2018-03-30
     *
     * @return 上课日期 2018-03-30
     */
    public Date getDate(){
        return date;
    }


    /**
     * 设置课程开始时间 8
     *
     * @param startTime 课程开始时间 8
     */
    public void setStartTime(LocalTime startTime){
        this.startTime = startTime;
    }

    /**
     * 获取课程开始时间 8
     *
     * @return 课程开始时间 8
     */
    public LocalTime getStartTime(){
        return startTime;
    }


    /**
     * 设置课程结束时间 12
     *
     * @param endTime 课程结束时间 12
     */
    public void setEndTime(LocalTime endTime){
        this.endTime = endTime;
    }

    /**
     * 获取课程结束时间 12
     *
     * @return 课程结束时间 12
     */
    public LocalTime getEndTime(){
        return endTime;
    }


    /**
     * 设置课程总数量
     *
     * @param num 课程总数量
     */
    public void setNum(Integer num){
        this.num = num;
    }

    /**
     * 获取课程总数量
     *
     * @return 课程总数量
     */
    public Integer getNum(){
        return num;
    }


    /**
     * 设置销售数量
     *
     * @param saleNum 销售数量
     */
    public void setSaleNum(Integer saleNum){
        this.saleNum = saleNum;
    }

    /**
     * 获取销售数量
     *
     * @return 销售数量
     */
    public Integer getSaleNum(){
        return saleNum;
    }


    /**
     * 设置教练ID
     *
     * @param coachId 教练ID
     */
    public void setCoachId(Integer coachId){
        this.coachId = coachId;
    }

    /**
     * 获取教练ID
     *
     * @return 教练ID
     */
    public Integer getCoachId(){
        return coachId;
    }


    /**
     * 设置课程描述
     *
     * @param description 课程描述
     */
    public void setDescription(String description){
        this.description = description;
    }

    /**
     * 获取课程描述
     *
     * @return 课程描述
     */
    public String getDescription(){
        return description;
    }


    /**
     * 设置价格
     *
     * @param price 价格
     */
    public void setPrice(BigDecimal price){
        this.price = price;
    }

    /**
     * 获取价格
     *
     * @return 价格
     */
    public BigDecimal getPrice(){
        return price;
    }


    /**
     * 设置平台来源ID
     *
     * @param platformId 平台来源ID
     */
    public void setPlatformId(Integer platformId){
        this.platformId = platformId;
    }

    /**
     * 获取平台来源ID
     *
     * @return 平台来源ID
     */
    public Integer getPlatformId(){
        return platformId;
    }


    /**
     * 设置创建者编号
     *
     * @param createdId 创建者编号
     */
    public void setCreatedId(Integer createdId){
        this.createdId = createdId;
    }

    /**
     * 获取创建者编号
     *
     * @return 创建者编号
     */
    public Integer getCreatedId(){
        return createdId;
    }


    /**
     * 设置创建者编号
     *
     * @param modifiedId 创建者编号
     */
    public void setModifiedId(Integer modifiedId){
        this.modifiedId = modifiedId;
    }

    /**
     * 获取创建者编号
     *
     * @return 创建者编号
     */
    public Integer getModifiedId(){
        return modifiedId;
    }


    /**
     * 设置创建时间
     *
     * @param createdTime 创建时间
     */
    public void setCreatedTime(Date createdTime){
        this.createdTime = createdTime;
    }

    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreatedTime(){
        return createdTime;
    }


    /**
     * 设置更新时间
     *
     * @param modifiedTime 更新时间
     */
    public void setModifiedTime(Date modifiedTime){
        this.modifiedTime = modifiedTime;
    }

    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getModifiedTime(){
        return modifiedTime;
    }


    /**
     * 设置删除标识位
     *
     * @see com.ydd.framework.core.entity.enums.DeletedEnum
     * @param deleted 删除标识位
     */
    public void setDeleted(Integer deleted){
        this.deleted = deleted;
    }

    /**
     * 获取删除标识位
     *
     * @see com.ydd.framework.core.entity.enums.DeletedEnum
     * @return 删除标识位
     */
    public Integer getDeleted(){
        return deleted;
    }

    public Integer getStatus() {
        return status;
    }

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

    public Integer getVenueType() {
        return venueType;
    }

    public void setVenueType(Integer venueType) {
        this.venueType = venueType;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getQrCode() {
        return qrCode;
    }

    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }

    public Integer getType() {
        return type;
    }

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