package com.mortals.xhx.module.person.model;

import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.person.model.vo.PersonVo;
/**
* 注册人员实体对象
*
* @author zxfei
* @date 2023-04-09
*/

public class PersonEntity extends PersonVo {
    private static final long serialVersionUID = 1L;

    /**
    * 站点Id
    */
    private Long siteId;
    /**
    * 站点名称
    */
    private String siteName;
    /**
    * 用户名称
    */
    private String name;
    /**
    * 身份证号码
    */
    private String idCard;
    /**
    * 性别(0.男,1.女)
    */
    @Excel(name = "性别", readConverterExp = "0=男,1.女")
    private Integer gender;
    /**
    * 手机号码
    */
    private String phone;
    /**
    * 出生日期
    */
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;
    /**
    * 家庭住址
    */
    @Excel(name = "家庭住址")
    private String address;
    /**
    * 照片路径
    */
    private String photo;
    /**
    * 备注
    */
    private String remark;
    /**
    * 注册人员来源(0.预约系统,1.排队叫号系统,2.自助服务系统,99.其它)
    */
    private Integer source;
    /**
    * 是否添加到海康人脸库(0.否，1.是)
    */
    private Integer inFaceHk;
    /**
    * 人脸的唯一标识
    */
    private String indexCode;
    /**
    * 人脸所属的人脸分组的唯一标识
    */
    private String ifaceGroupIndexCode;



    public PersonEntity(){}
    /**
    * 获取 站点Id
    * @return Long
    */
    public Long getSiteId(){
        return siteId;
    }
    /**
    * 设置 站点Id
    * @param siteId
    */
    public void setSiteId(Long siteId){
        this.siteId = siteId;
    }
    /**
    * 获取 站点名称
    * @return String
    */
    public String getSiteName(){
        return siteName;
    }
    /**
    * 设置 站点名称
    * @param siteName
    */
    public void setSiteName(String siteName){
        this.siteName = siteName;
    }
    /**
    * 获取 用户名称
    * @return String
    */
    public String getName(){
        return name;
    }
    /**
    * 设置 用户名称
    * @param name
    */
    public void setName(String name){
        this.name = name;
    }
    /**
    * 获取 身份证号码
    * @return String
    */
    public String getIdCard(){
        return idCard;
    }
    /**
    * 设置 身份证号码
    * @param idCard
    */
    public void setIdCard(String idCard){
        this.idCard = idCard;
    }
    /**
    * 获取 性别(0.男,1.女)
    * @return Integer
    */
    public Integer getGender(){
        return gender;
    }
    /**
    * 设置 性别(0.男,1.女)
    * @param gender
    */
    public void setGender(Integer gender){
        this.gender = gender;
    }
    /**
    * 获取 手机号码
    * @return String
    */
    public String getPhone(){
        return phone;
    }
    /**
    * 设置 手机号码
    * @param phone
    */
    public void setPhone(String phone){
        this.phone = phone;
    }
    /**
    * 获取 出生日期
    * @return Date
    */
    public Date getBirthday(){
        return birthday;
    }
    /**
    * 设置 出生日期
    * @param birthday
    */
    public void setBirthday(Date birthday){
        this.birthday = birthday;
    }
    /**
    * 获取 家庭住址
    * @return String
    */
    public String getAddress(){
        return address;
    }
    /**
    * 设置 家庭住址
    * @param address
    */
    public void setAddress(String address){
        this.address = address;
    }
    /**
    * 获取 照片路径
    * @return String
    */
    public String getPhoto(){
        return photo;
    }
    /**
    * 设置 照片路径
    * @param photo
    */
    public void setPhoto(String photo){
        this.photo = photo;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }
    /**
    * 获取 注册人员来源(0.预约系统,1.排队叫号系统,2.自助服务系统,99.其它)
    * @return Integer
    */
    public Integer getSource(){
        return source;
    }
    /**
    * 设置 注册人员来源(0.预约系统,1.排队叫号系统,2.自助服务系统,99.其它)
    * @param source
    */
    public void setSource(Integer source){
        this.source = source;
    }
    /**
    * 获取 是否添加到海康人脸库(0.否，1.是)
    * @return Integer
    */
    public Integer getInFaceHk(){
        return inFaceHk;
    }
    /**
    * 设置 是否添加到海康人脸库(0.否，1.是)
    * @param inFaceHk
    */
    public void setInFaceHk(Integer inFaceHk){
        this.inFaceHk = inFaceHk;
    }
    /**
    * 获取 人脸的唯一标识
    * @return String
    */
    public String getIndexCode(){
        return indexCode;
    }
    /**
    * 设置 人脸的唯一标识
    * @param indexCode
    */
    public void setIndexCode(String indexCode){
        this.indexCode = indexCode;
    }
    /**
    * 获取 人脸所属的人脸分组的唯一标识
    * @return String
    */
    public String getIfaceGroupIndexCode(){
        return ifaceGroupIndexCode;
    }
    /**
    * 设置 人脸所属的人脸分组的唯一标识
    * @param ifaceGroupIndexCode
    */
    public void setIfaceGroupIndexCode(String ifaceGroupIndexCode){
        this.ifaceGroupIndexCode = ifaceGroupIndexCode;
    }




    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof PersonEntity) {
            PersonEntity tmp = (PersonEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",siteId:").append(getSiteId());
        sb.append(",siteName:").append(getSiteName());
        sb.append(",name:").append(getName());
        sb.append(",idCard:").append(getIdCard());
        sb.append(",gender:").append(getGender());
        sb.append(",phone:").append(getPhone());
        sb.append(",birthday:").append(getBirthday());
        sb.append(",address:").append(getAddress());
        sb.append(",photo:").append(getPhoto());
        sb.append(",remark:").append(getRemark());
        sb.append(",source:").append(getSource());
        sb.append(",inFaceHk:").append(getInFaceHk());
        sb.append(",indexCode:").append(getIndexCode());
        sb.append(",ifaceGroupIndexCode:").append(getIfaceGroupIndexCode());
        return sb.toString();
    }

    public void initAttrValue(){

            this.siteId = null;

            this.siteName = "";

            this.name = "";

            this.idCard = "";

            this.gender = 0;

            this.phone = "";

            this.birthday = null;

            this.address = "";

            this.photo = "";

            this.remark = "";

            this.source = null;

            this.inFaceHk = 0;

            this.indexCode = "";

            this.ifaceGroupIndexCode = "";
    }
}