package com.yida.data.common.core.entity.message;

import java.util.Date;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.time.LocalDate;
import java.time.LocalTime;

import io.swagger.annotations.ApiModelProperty;

/**
 * 消息策略 Entity
 *
 * @author wjm
 * @date 2021-08-23 19:39:20
 */
@Data
@TableName("edu_message_strategy")
public class EduMessageStrategy {

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 1：关注自动回复，2：关键词回复，3：收到消息回复
     */
    @ApiModelProperty(value = "1：关注自动回复，2：关键词回复，3：收到消息回复")
    @TableField("type")
    private Integer type;

    /**
     * 子类型，1=智慧迎新关注回复
     */
    @ApiModelProperty(value = "子类型，1=智慧迎新关注回复")
    @TableField("sub_type")
    private Integer subType;

    /**
     * 所属学校ID
     */
    @ApiModelProperty(value = "所属学校ID")
    @TableField("school_id")
    private Integer schoolId;

    /**
     * 所属年级ID  预留
     */
    @ApiModelProperty(value = "所属年级ID  预留")
    @TableField("grade_id")
    private Integer gradeId;

    /**
     * 所属班级ID  预留
     */
    @ApiModelProperty(value = "所属班级ID  预留")
    @TableField("class_id")
    private Integer classId;

    /**
     * 性别  预留
     */
    @ApiModelProperty(value = "性别  预留")
    @TableField("sex")
    private Integer sex;

    /**
     * 地址  预留
     */
    @ApiModelProperty(value = "地址  预留")
    @TableField("address")
    private String address;

    /**
     * 一天中开始时间  预留
     */
    @ApiModelProperty(value = "一天中开始时间  预留")
    @TableField("begin_time")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
    private LocalTime beginTime;

    /**
     * 一天中结束时间   预留
     */
    @ApiModelProperty(value = "一天中结束时间   预留")
    @TableField("end_time")
    @DateTimeFormat(pattern = "HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
    private LocalTime endTime;

    /**
     * 开始日期   预留
     */
    @ApiModelProperty(value = "开始日期   预留")
    @TableField("begin_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime beginDate;

    /**
     * 结束日期  预留
     */
    @ApiModelProperty(value = "结束日期  预留")
    @TableField("end_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    /**
     * 1:启用，0=未启用
     */
    @ApiModelProperty(value = "1:启用，0=未启用")
    @TableField("status")
    private Integer status;

    /**
     * 回复内容
     */
    @ApiModelProperty(value = "回复内容")
    @TableField("content")
    private String content;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "update_date", fill = FieldFill.UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateDate;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Long createId;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    private Long updateId;

    /**
     *
     */
    @ApiModelProperty(value = "")
    @TableField("del_flag")
    @TableLogic(value = "0", delval = "1")
    private Integer delFlag;

}
