package com.prolog.rdc.tms.model.vo;

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

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.product.core.base.group.AddGroup;
import com.prolog.product.core.base.group.EditGroup;

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

/**
 *
 * 高级查询条件配置 VO
 *
 *
 * @className: SysQueryDefinehVO
 * @author: kh
 * @creationTime: 2022-01-19 09:39:31
 * @description:
 * @modifier:
 * @modifyTime:
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
@Data
@ApiModel("高级查询条件配置 VO")
public class SysQueryDefinehVO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "行ID")
	@NotBlank(message = "行ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "行ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	private Long lineId;

	@ApiModelProperty(value = "搜索编码，页面或对象")
	@NotBlank(message = "搜索编码，页面或对象必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 100, message = "搜索编码，页面或对象最大长度100", groups = { AddGroup.class, EditGroup.class })
	private String queryCode;

	@ApiModelProperty(value = "用户自定义")
	@NotBlank(message = "用户自定义必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 100, message = "用户自定义最大长度100", groups = { AddGroup.class, EditGroup.class })
	private String queryName;

	@ApiModelProperty(value = "排序号")
	private Integer sort;

	@ApiModelProperty(value = "默认状态，0否，1.是")
	private Integer defaultStatus;

	@ApiModelProperty(value = "扩展字段1")
	@Size(max = 128, message = "扩展字段1最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend01;

	@ApiModelProperty(value = "扩展字段2")
	@Size(max = 128, message = "扩展字段2最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend02;

	@ApiModelProperty(value = "扩展字段数字1")
	private BigDecimal extendnum01;

	@ApiModelProperty(value = "扩展字段数字2")
	private BigDecimal extendnum02;

	@ApiModelProperty(value = "扩展字段日期1")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date extenddte01;

	@ApiModelProperty(value = "扩展字段日期2")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date extenddte02;

	@ApiModelProperty(value = "创建时间")
	@NotNull(message = "创建时间必填", groups = { AddGroup.class, EditGroup.class })
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createtime;

	@ApiModelProperty(value = "创建人ID")
	@NotBlank(message = "创建人ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "创建人ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String createby;

	@ApiModelProperty(value = "创建人姓名p_nickname")
	@NotBlank(message = "创建人姓名p_nickname必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 64, message = "创建人姓名p_nickname最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String createperson;

	@ApiModelProperty(value = "修改时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updatetime;

	@ApiModelProperty(value = "修改人ID")
	@Size(max = 32, message = "修改人ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String updateby;

	@ApiModelProperty(value = "修改人姓名p_nickname")
	@Size(max = 64, message = "修改人姓名p_nickname最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String updateperson;

}
