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

import java.io.Serializable;

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

import com.prolog.product.core.base.group.AddGroup;
import com.prolog.product.core.base.group.EditGroup;
import com.prolog.product.core.framework.annotation.CombineFieldsSymbol;
import com.prolog.product.core.framework.annotation.DbQuerySymbol;
import com.prolog.product.core.framework.annotation.FillBranch;
import com.prolog.product.core.framework.annotation.FillEnterprise;
import com.prolog.product.core.framework.annotation.IdGen;

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

/**
 * 打印机配置表 Vo
 * <p>
 * Copyright: Copyright (C) 2020 prolog-int, Inc. All rights reserved.
 * <p>
 * Company: 湖北普罗格科技股份有限公司
 *
 *
 * @author zxs
 * @since 2020-05-28 13:13
 */
@Data
@ApiModel("打印机配置表 VO")
public class SysPrintMstVO implements Serializable {

	private static final long serialVersionUID = 1L;

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

	@ApiModelProperty(value = "打印机ID")
	@NotBlank(message = "打印机ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "打印机ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	@IdGen(name = "sys_print_mst_printerid", seed = "L")
	private String printerid;

	@ApiModelProperty(value = "打印机编号")
	@NotBlank(message = "打印机编号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 20, message = "打印机编号最大长度20", groups = { AddGroup.class, EditGroup.class })
	@DbQuerySymbol("like")
	@CombineFieldsSymbol(group = "default", sameValue = true)
	private String printercode;

	@ApiModelProperty(value = "打印机名称")
	@NotBlank(message = "打印机名称必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 200, message = "打印机名称最大长度200", groups = { AddGroup.class, EditGroup.class })
	@DbQuerySymbol("like")
	@CombineFieldsSymbol(group = "default", sameValue = true)
	private String printername;

	@ApiModelProperty(value = "打印机类型（JZS:集中式,网络打印机/FBS:分布式,非网络打印机）")
	@NotBlank(message = "打印机类型（JZS:集中式,网络打印机/FBS:分布式,非网络打印机）必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 3, message = "打印机类型（JZS:集中式,网络打印机/FBS:分布式,非网络打印机）最大长度3", groups = { AddGroup.class, EditGroup.class })
	private String printertype;

	@ApiModelProperty(value = "状态（0:已损坏报修/1:正常）")
	@NotBlank(message = "状态（0:已损坏报修/1:正常）必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 2, message = "状态（0:已损坏报修/1:正常）最大长度2", groups = { AddGroup.class, EditGroup.class })
	private String status;

	@ApiModelProperty(value = "TCP/IP地址")
	@Size(max = 20, message = "TCP/IP地址最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String tcp;

	@ApiModelProperty(value = "企业ID")
	@NotBlank(message = "企业ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 40, message = "企业ID最大长度40", groups = { AddGroup.class, EditGroup.class })
	@FillEnterprise
	private Long enterpriseId;

	@ApiModelProperty(value = "模糊条件")
	private String condition;

	private Integer pageNum;

	private Integer pageSize;

}
