package ${vhGrpcBuilder_packageName}.${vhGrpcBuilder_sprojectName}.vo.user;

import ${vhGrpcBuilder_packageName}.${vhGrpcBuilder_sprojectName}.util.validator.Phone;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import static java.util.Optional.ofNullable;

/**
 * 供应商用户
 * @author gexiangping
 *
 */
public class UserVo { 
	
	public static interface Create{}
	
	public static interface Update{}
	
	@Min(value=1, groups = {Update.class})
    private long id; 
    
    @NotBlank(groups={Create.class, Update.class})
    @Length(min=4,max=20,message="登录用户名长度应在4-20之间", groups={Create.class, Update.class})
    private String name; 
    
    @NotNull(groups={Create.class, Update.class})
    private String realName="";
    
    @NotBlank(groups={Create.class, Update.class})
    @Phone(groups={Create.class, Update.class})
    private String phone;
    
    @NotBlank(groups={Create.class, Update.class})
    @Email(groups={Create.class, Update.class})
    private String mail;
    
    @NotBlank(groups={Create.class})
    @Length(min=8,max=20,message="密码长度应在8-20之间", groups={Create.class})
    private String password;
    
    private long sid;
    @NotNull(groups={Create.class, Update.class})
    @Length(max=100,message="供应商企业名称不应超过100长度", groups={Create.class, Update.class})
    private String sname = "";
    @NotNull
    private String certNo = "";
    
    private int status;
    private int admin;
    private int channel;
    private int wxStatus;
    private int ver;
    private String description="";
    private long modifier;
    
	public long getModifier() {
		return modifier;
	}
	public void setModifier(long modifier) {
		this.modifier = modifier;
	}
	public long getSid() {
		return sid;
	}
	public void setSid(long sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public String getRealName() {
		return realName;
	}
	public void setRealName(String realName) {
		this.realName = realName;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	public int getChannel() {
		return channel;
	}
	public void setChannel(int channel) {
		this.channel = channel;
	}
	public int getWxStatus() {
		return wxStatus;
	}
	public void setWxStatus(int wxStatus) {
		this.wxStatus = wxStatus;
	}
	public int getVer() {
		return ver;
	}
	public void setVer(int ver) {
		this.ver = ver;
	}
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	public int getAdmin() {
		return admin;
	}
	public void setAdmin(int admin) {
		this.admin = admin;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getCertNo() {
		return certNo;
	}
	public void setCertNo(String certNo) {
		this.certNo = certNo;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}