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

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

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

import org.springframework.format.annotation.DateTimeFormat;

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: SysImportTemplethVO
 * @author: kh
 * @creationTime: 2022-01-12 10:12:37
 * @description:
 * @modifier:
 * @modifyTime:
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
@Data
@ApiModel("导入配置模板汇总 VO")
public class SysImportTemplethVO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "模板汇总主键")
	@NotBlank(message = "模板汇总主键必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "模板汇总主键最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String hid;

	@ApiModelProperty(value = "导入对象编码，通用参照数据中配置")
	@Size(max = 32, message = "导入对象编码，通用参照数据中配置最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String importObjNo;

	@ApiModelProperty(value = "导入对象名称，通用参照数据中配置")
	@Size(max = 30, message = "导入对象名称，通用参照数据中配置最大长度30", groups = { AddGroup.class, EditGroup.class })
	private String importObjName;

	@ApiModelProperty(value = "模板名称")
	@Size(max = 100, message = "模板名称最大长度100", groups = { AddGroup.class, EditGroup.class })
	private String templeteName;

	@ApiModelProperty(value = "是否启用，0否，1是")
	@NotNull(message = "是否启用，0否，1是必填", groups = { AddGroup.class, EditGroup.class })
	private Integer status;

	@ApiModelProperty(value = "模板状态，用于删除，0无效，1有效")
	private Integer templetStatus;

	@ApiModelProperty(value = "备注")
	@Size(max = 500, message = "备注最大长度500", groups = { AddGroup.class, EditGroup.class })
	private String remark;

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

	@ApiModelProperty(value = "创建人主键")
	@NotBlank(message = "创建人主键必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "创建人主键最大长度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")
	private LocalDateTime updatetime;

	@ApiModelProperty(value = "修改人")
	@Size(max = 32, message = "修改人最大长度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;

	@ApiModelProperty(value = "企业ID")
	@Size(max = 64, message = "企业ID最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String penterpriseid;

	@ApiModelProperty(value = "企业名称")
	@Size(max = 128, message = "企业名称最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String penterprisename;

	@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")
	private LocalDateTime extenddte01;

	@ApiModelProperty(value = "扩展字段日期2")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime extenddte02;
}
