package com.willalp.event.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.willalp.common.annotation.Excel;
import com.willalp.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 活动配置对象 hs_event
 *
 * @author willalp
 * @date 2023-01-29
 */

@TableName("hs_event")
public class HsEvent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId
    private String id;

    /** 事件编号 */
    @Excel(name = "事件编号")
    private String eventNo;

    /** 事件名称 */
    @Excel(name = "事件名称")
    private String eventName;

    /** 开始时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 事件时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "事件时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date eventTime;

    /** 事件开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "事件开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date eventStartTime;

    /** 事件结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "事件结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date eventEndTime;

    /** 结束时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 事件类型 */
    @Excel(name = "事件类型")
    private String eventType;

    /** 事件地点 */
    @Excel(name = "事件地点")
    private String eventPlace;
    @TableField(exist = false)
    public String eventPlaceSite;

    @TableField(exist = false)
    public String eventImgUrl;

    /** 事件描述 */
    @Excel(name = "事件描述")
    private String eventDescribe;

    /** 禁止取消预约时限 */
    @Excel(name = "禁止取消预约时限")
    private Integer banCancelSubscribeTimeLimit;

    /** 数量限制 */
    @Excel(name = "数量限制")
    private Integer limitNum;
    @TableField(exist = false)
    public Integer alreadyHave;

    /** 活动开始前多久提示 */
    @Excel(name = "活动开始前多久提示")
    private Integer howLongRemind;

    /** 事件项目类型ID */
    @Excel(name = "事件项目类型ID")
    private String activityTypeId;

    /** 事件状态 */
    @Excel(name = "事件状态")
    private String eventStatus;

    /** 是否删除（0.未删除；1.已删除） */
    @Excel(name = "是否删除", readConverterExp = "0=.未删除；1.已删除")
    @TableLogic
    private Integer isDelete;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setEventNo(String eventNo)
    {
        this.eventNo = eventNo;
    }

    public String getEventNo()
    {
        return eventNo;
    }
    public void setEventName(String eventName)
    {
        this.eventName = eventName;
    }

    public String getEventName()
    {
        return eventName;
    }
    public void setEventTime(Date eventTime)
    {
        this.eventTime = eventTime;
    }

    public Date getEventTime()
    {
        return eventTime;
    }
    public void setEventType(String eventType)
    {
        this.eventType = eventType;
    }

    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 String getEventType()
    {
        return eventType;
    }
    public void setEventPlace(String eventPlace)
    {
        this.eventPlace = eventPlace;
    }

    public String getEventPlace()
    {
        return eventPlace;
    }
    public void setEventDescribe(String eventDescribe)
    {
        this.eventDescribe = eventDescribe;
    }

    public String getEventDescribe()
    {
        return eventDescribe;
    }
    public void setEventStatus(String eventStatus)
    {
        this.eventStatus = eventStatus;
    }

    public String getEventStatus()
    {
        return eventStatus;
    }
    public void setIsDelete(Integer isDelete)
    {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete()
    {
        return isDelete;
    }

    public Integer getHowLongRemind() {
        return howLongRemind;
    }

    public void setHowLongRemind(Integer howLongRemind) {
        this.howLongRemind = howLongRemind;
    }

    public Integer getLimitNum() {
        return limitNum;
    }

    public void setLimitNum(Integer limitNum) {
        this.limitNum = limitNum;
    }

    public Integer getBanCancelSubscribeTimeLimit() {
        return banCancelSubscribeTimeLimit;
    }

    public void setBanCancelSubscribeTimeLimit(Integer banCancelSubscribeTimeLimit) {
        this.banCancelSubscribeTimeLimit = banCancelSubscribeTimeLimit;
    }

    public Date getEventEndTime() {
        return eventEndTime;
    }

    public void setEventEndTime(Date eventEndTime) {
        this.eventEndTime = eventEndTime;
    }

    public Date getEventStartTime() {
        return eventStartTime;
    }

    public void setEventStartTime(Date eventStartTime) {
        this.eventStartTime = eventStartTime;
    }

    public String getActivityTypeId() {
        return activityTypeId;
    }

    public void setActivityTypeId(String activityTypeId) {
        this.activityTypeId = activityTypeId;
    }
}
