package org.jeecg.modules.system.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 编号模式定义表
 * @author： jeecg-boot
 * @date：   2019-05-23
 * @version： V1.0
 */
@Data
@TableName("sys_serial_pattern")
public class SysSerialPattern implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键*/
	@TableId(type = IdType.UUID)
	private String id;
	/**字段所属表格名称*/
	@Excel(name = "字段所属表格名称", width = 15)
	@NotEmpty(message="表格名称不能为空")
	@Length(max=100,message = "表格名称不能超过100个文字")
	private String tableName;
	/**字段名称*/
	@Excel(name = "字段名称", width = 15)
	@NotEmpty(message="字段名称不能为空")
	@Length(max=100,message = "字段名称不能超过100个文字")
	private String fieldName;
	/**编号模式，支持前缀，年月日时分秒，自增号混编模式。多个部分用英文加号(+)分隔。前缀支持字符串(用大括号括起来{})和同一表其他字段(用中括号括起来)。年月日时分秒必须连一起，如yyyyMMddHHmmss，可以是其中的一部分。自增编号就是一个数字，譬如4，就是表示4位长度。*/
	@Excel(name = "编号模式", width = 15)
	@NotEmpty(message="编号模式不能为空")
	@Length(max=100,message = "编号模式不能超过100个文字")
	private String serialPattern;
	/**描述*/
	@Excel(name = "描述", width = 15)
	private String description;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
	private String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
}
