package com.ywt.mg.domain.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Entity
@Table(name = "medical_card")
public class MedicalCard implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;

    /**
     * 用户Id
     */
    @Column(name = "user_id", nullable = false)
    private Integer userId;

    /**
     * 医院Id
     */
    @Column(name = "hospital_id", nullable = false)
    private Integer hospitalId;

    /**
     * 卡号
     */
    @Column(name = "card_no", nullable = false)
    private String cardNo;

    /**
     * 卡类型
     */
    @Column(name = "card_type")
    private String cardType;

    /**
     * 姓名
     */
    @Column(name = "patient_name", nullable = false)
    private String patientName;

    /**
     * 手机号
     */
    @Column(name = "mobile", nullable = false)
    private String mobile;

    /**
     * 性别（0-未知 1-男 2-女）
     */
    @Column(name = "sex", nullable = false)
    private Integer sex;

    /**
     * 出生日期
     */
    @Column(name = "birthday")
    private String birthday;

    /**
     * 家庭住址
     */
    @Column(name = "address")
    private String address;

    /**
     * 联系电话
     */
    @Column(name = "telephone_no")
    private String telephoneNo;

    /**
     * 病案号
     */
    @Column(name = "document_id")
    private String documentId;

    /**
     * 账户余额（以分为单位）
     */
    @Column(name = "balance", nullable = false)
    private Integer balance;

    /**
     * 证件类型（代码）
     */
    @Column(name = "id_type_code")
    private String idTypeCode;

    /**
     * 证件类型（描述）
     */
    @Column(name = "id_type_desc")
    private String idTypeDesc;

    /**
     * 证件号
     */
    @Column(name = "id_no")
    private String idNo;

    /**
     * 医保卡号
     */
    @Column(name = "insure_card_no")
    private String insureCardNo;

    /**
     * 账户信息
     */
    @Column(name = "acc_info")
    private String accInfo;

    /**
     * 病人类型
     */
    @Column(name = "patient_type")
    private String patientType;

    /**
     * 状态（1-正常，2-删除）
     */
    @Column(name = "status", nullable = false)
    private Integer status;

    /**
     * 修改时间（上次使用时间）
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 创建时间
     */
    @Column(name = "create_time", nullable = false)
    private Date createTime;

    @Column(name = "his_patient_id")
    private String hisPatientId;

    /**
     * 监护人（家长姓名）
     */
    @Column(name = "guardian")
    private String guardian;

    /**
     * 最后（上一次）的选择，0-否，1-是
     */
    @Column(name = "last_choice")
    private Boolean lastChoice;

    /**
     * 上一次 HIS 同步的时间戳
     */
    @Column(name = "his_sync_time")
    private Date hisSyncTime;

    /**
     * 上次选择时间
     */
    @Column(name = "last_chosen_time")
    private Date lastChosenTime;

    /**
     * 与本人关系：1-本人，2-家庭成员，3-亲戚，4-朋友，5-其他
     */
    @Column(name = "relationship")
    private Integer relationship;

    /**
     * 是否是默认卡，0-不是，1-是
     */
    @Column(name = "default_card")
    private Boolean defaultCard;

    /**
     * 主键
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 主键
     */
    public Integer getId() {
        return id;
    }

    /**
     * 用户Id
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 用户Id
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 医院Id
     */
    public void setHospitalId(Integer hospitalId) {
        this.hospitalId = hospitalId;
    }

    /**
     * 医院Id
     */
    public Integer getHospitalId() {
        return hospitalId;
    }

    /**
     * 卡号
     */
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    /**
     * 卡号
     */
    public String getCardNo() {
        return cardNo;
    }

    /**
     * 卡类型
     */
    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    /**
     * 卡类型
     */
    public String getCardType() {
        return cardType;
    }

    /**
     * 姓名
     */
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    /**
     * 姓名
     */
    public String getPatientName() {
        return patientName;
    }

    /**
     * 手机号
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * 手机号
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * 性别（0-未知 1-男 2-女）
     */
    public void setSex(Integer sex) {
        this.sex = sex;
    }

    /**
     * 性别（0-未知 1-男 2-女）
     */
    public Integer getSex() {
        return sex;
    }

    /**
     * 出生日期
     */
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    /**
     * 出生日期
     */
    public String getBirthday() {
        return birthday;
    }

    /**
     * 家庭住址
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 家庭住址
     */
    public String getAddress() {
        return address;
    }

    /**
     * 联系电话
     */
    public void setTelephoneNo(String telephoneNo) {
        this.telephoneNo = telephoneNo;
    }

    /**
     * 联系电话
     */
    public String getTelephoneNo() {
        return telephoneNo;
    }

    /**
     * 病案号
     */
    public void setDocumentId(String documentId) {
        this.documentId = documentId;
    }

    /**
     * 病案号
     */
    public String getDocumentId() {
        return documentId;
    }

    /**
     * 账户余额（以分为单位）
     */
    public void setBalance(Integer balance) {
        this.balance = balance;
    }

    /**
     * 账户余额（以分为单位）
     */
    public Integer getBalance() {
        return balance;
    }

    /**
     * 证件类型（代码）
     */
    public void setIdTypeCode(String idTypeCode) {
        this.idTypeCode = idTypeCode;
    }

    /**
     * 证件类型（代码）
     */
    public String getIdTypeCode() {
        return idTypeCode;
    }

    /**
     * 证件类型（描述）
     */
    public void setIdTypeDesc(String idTypeDesc) {
        this.idTypeDesc = idTypeDesc;
    }

    /**
     * 证件类型（描述）
     */
    public String getIdTypeDesc() {
        return idTypeDesc;
    }

    /**
     * 证件号
     */
    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }

    /**
     * 证件号
     */
    public String getIdNo() {
        return idNo;
    }

    /**
     * 医保卡号
     */
    public void setInsureCardNo(String insureCardNo) {
        this.insureCardNo = insureCardNo;
    }

    /**
     * 医保卡号
     */
    public String getInsureCardNo() {
        return insureCardNo;
    }

    /**
     * 账户信息
     */
    public void setAccInfo(String accInfo) {
        this.accInfo = accInfo;
    }

    /**
     * 账户信息
     */
    public String getAccInfo() {
        return accInfo;
    }

    /**
     * 病人类型
     */
    public void setPatientType(String patientType) {
        this.patientType = patientType;
    }

    /**
     * 病人类型
     */
    public String getPatientType() {
        return patientType;
    }

    /**
     * 状态（1-正常，2-删除）
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 状态（1-正常，2-删除）
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 修改时间（上次使用时间）
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 修改时间（上次使用时间）
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    public void setHisPatientId(String hisPatientId) {
        this.hisPatientId = hisPatientId;
    }

    public String getHisPatientId() {
        return hisPatientId;
    }

    /**
     * 监护人（家长姓名）
     */
    public void setGuardian(String guardian) {
        this.guardian = guardian;
    }

    /**
     * 监护人（家长姓名）
     */
    public String getGuardian() {
        return guardian;
    }

    /**
     * 最后（上一次）的选择，0-否，1-是
     */
    public void setLastChoice(Boolean lastChoice) {
        this.lastChoice = lastChoice;
    }

    /**
     * 最后（上一次）的选择，0-否，1-是
     */
    public Boolean isLastChoice() {
        return lastChoice;
    }

    /**
     * 上一次 HIS 同步的时间戳
     */
    public void setHisSyncTime(Date hisSyncTime) {
        this.hisSyncTime = hisSyncTime;
    }

    /**
     * 上一次 HIS 同步的时间戳
     */
    public Date getHisSyncTime() {
        return hisSyncTime;
    }

    /**
     * 上次选择时间
     */
    public void setLastChosenTime(Date lastChosenTime) {
        this.lastChosenTime = lastChosenTime;
    }

    /**
     * 上次选择时间
     */
    public Date getLastChosenTime() {
        return lastChosenTime;
    }

    /**
     * 与本人关系：1-本人，2-家庭成员，3-亲戚，4-朋友，5-其他
     */
    public void setRelationship(Integer relationship) {
        this.relationship = relationship;
    }

    /**
     * 与本人关系：1-本人，2-家庭成员，3-亲戚，4-朋友，5-其他
     */
    public Integer getRelationship() {
        return relationship;
    }

    /**
     * 是否是默认卡，0-不是，1-是
     */
    public void setDefaultCard(Boolean defaultCard) {
        this.defaultCard = defaultCard;
    }

    /**
     * 是否是默认卡，0-不是，1-是
     */
    public Boolean isDefaultCard() {
        return defaultCard;
    }

    @Override
    public String toString() {
        return "MedicalCard{" +
                "id=" + id + '\'' +
                "userId=" + userId + '\'' +
                "hospitalId=" + hospitalId + '\'' +
                "cardNo=" + cardNo + '\'' +
                "cardType=" + cardType + '\'' +
                "patientName=" + patientName + '\'' +
                "mobile=" + mobile + '\'' +
                "sex=" + sex + '\'' +
                "birthday=" + birthday + '\'' +
                "address=" + address + '\'' +
                "telephoneNo=" + telephoneNo + '\'' +
                "documentId=" + documentId + '\'' +
                "balance=" + balance + '\'' +
                "idTypeCode=" + idTypeCode + '\'' +
                "idTypeDesc=" + idTypeDesc + '\'' +
                "idNo=" + idNo + '\'' +
                "insureCardNo=" + insureCardNo + '\'' +
                "accInfo=" + accInfo + '\'' +
                "patientType=" + patientType + '\'' +
                "status=" + status + '\'' +
                "updateTime=" + updateTime + '\'' +
                "createTime=" + createTime + '\'' +
                "hisPatientId=" + hisPatientId + '\'' +
                "guardian=" + guardian + '\'' +
                "lastChoice=" + lastChoice + '\'' +
                "hisSyncTime=" + hisSyncTime + '\'' +
                "lastChosenTime=" + lastChosenTime + '\'' +
                "relationship=" + relationship + '\'' +
                "defaultCard=" + defaultCard + '\'' +
                '}';
    }
}
