package com.ywt.outpatient.domain.entity.center;

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

/**
 * (ConsultOrder)实体类
 *
 * @author johnson lin
 * @since 2019-06-10 13:44:53
 */
@Entity
@Table(name = "consult_order")
public class ConsultOrder implements Serializable {
    private static final long serialVersionUID = 461638541128425934L;

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

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

    /**
     * 姓名
     */
    @Column(name = "name")
    private String name;

    /**
     * 电话
     */
    @Column(name = "mobile")
    private String mobile;

    /**
     * 年龄
     */
    @Column(name = "age")
    private Integer age;

    /**
     * 性别
     */
    @Column(name = "sex")
    private Integer sex;

    /**
     * 病情描述
     */
    @Column(name = "description")
    private String description;

    /**
     * 医生Id
     */
    @Column(name = "doctor_id")
    private Integer doctorId;

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

    /**
     * 科室Id
     */
    @Column(name = "dept_id")
    private Integer deptId;

    /**
     * 咨询费用，单位：分
     */
    @Column(name = "amount")
    private Integer amount;

    /**
     * 支付状态
     */
    @Column(name = "payment_status")
    private Integer paymentStatus;

    /**
     * 咨询状态
     */
    @Column(name = "consult_status")
    private Integer consultStatus;

    /**
     * 会话Id
     */
    @Column(name = "session_id")
    private String sessionId;

    /**
     * 是否删除
     */
    @Column(name = "deleted")
    private Boolean deleted;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    private Date updateTime;

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

    /**
     * 接诊时间
     */
    @Column(name = "accept_time")
    private Date acceptTime;

    /**
     * 患者Id
     */
    @Column(name = "patient_id")
    private Integer patientId;

    /**
     * 微信商户Id
     */
    @Column(name = "wx_merchant_id")
    private String wxMerchantId;

    /**
     * 内部支付实现唯一编码
     */
    @Column(name = "wx_internal_pay_no")
    private String wxInternalPayNo;

    /**
     * 微信支付订单号
     */
    @Column(name = "wx_transaction_id")
    private String wxTransactionId;

    /**
     * 对应user_patient表的ID，可根据此字段查找患者身份证号
     */
    @Column(name = "user_patient_id")
    private Integer userPatientId;

    /**
     * 扩展状态（位存储）1-咨询内容可被分享查看
     */
    @Column(name = "ext_status")
    private Integer extStatus;

    /**
     * 咨询类型
     */
    @Column(name = "consult_type")
    private Integer consultType;

    @Column(name = "id_no")
    private String idNo;

    @Column(name = "payment_no")
    private String paymentNo;

    /**
     * 退款状态
     */
    @Column(name = "refund_status")
    private Integer refundStatus;

    /**
     * 退款时间
     */
    @Column(name = "refund_time")
    private Date refundTime;

    /**
     * 退款流水号
     */
    @Column(name = "refund_no")
    private String refundNo;

    /**
     * 退款回调时间
     */
    @Column(name = "refund_callback_time")
    private String refundCallbackTime;

    /**
     * 订单ID
     */
    @Column(name = "order_id")
    private Integer orderId;

    /**
     * 订单编码
     */
    @Column(name = "order_no")
    private String orderNo;

    /**
     * 活动ID
     */
    @Column(name = "activity_id")
    private Integer activityId;

    /**
     * 活动金额
     */
    @Column(name = "activity_amount")
    private Integer activityAmount;

    /**
     * 医院名称
     */
    @Column(name = "hospital_name")
    private String hospitalName;

    /**
     * 科室名称
     */
    @Column(name = "dept_name")
    private String deptName;

    /**
     * 医生名称
     */
    @Column(name = "doctor_name")
    private String doctorName;

    @Column(name = "team_id")
    private Integer teamId;

    @Column(name = "team_operate_doctor_id")
    private Integer teamOperateDoctorId;

    @Column(name = "pay_time")
    private Date payTime;

    /**
     * todo:互联网医院v4.5.7（新冠线上门诊）
     * 订单类型，0-线上问诊，1-医生团队问诊（根据consult_order的team_id），2-新冠线上门诊，默认0
     */
    @Column(name = "type")
    private Integer type;

    /**
     * 终端
     */
    @Column(name = "terminal")
    private Integer terminal;
    /**
     * 定点医院id
     */
    @Column(name = "fix_hospital_id")
    private Integer fixHospitalId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getDoctorId() {
        return doctorId;
    }

    public void setDoctorId(Integer doctorId) {
        this.doctorId = doctorId;
    }

    public Integer getHospitalId() {
        return hospitalId;
    }

    public void setHospitalId(Integer hospitalId) {
        this.hospitalId = hospitalId;
    }

    public Integer getDeptId() {
        return deptId;
    }

    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public Integer getPaymentStatus() {
        return paymentStatus;
    }

    public void setPaymentStatus(Integer paymentStatus) {
        this.paymentStatus = paymentStatus;
    }

    public Integer getConsultStatus() {
        return consultStatus;
    }

    public void setConsultStatus(Integer consultStatus) {
        this.consultStatus = consultStatus;
    }

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public Boolean getDeleted() {
        return deleted;
    }

    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getAcceptTime() {
        return acceptTime;
    }

    public void setAcceptTime(Date acceptTime) {
        this.acceptTime = acceptTime;
    }

    public Integer getPatientId() {
        return patientId;
    }

    public void setPatientId(Integer patientId) {
        this.patientId = patientId;
    }

    public String getWxMerchantId() {
        return wxMerchantId;
    }

    public void setWxMerchantId(String wxMerchantId) {
        this.wxMerchantId = wxMerchantId;
    }

    public String getWxInternalPayNo() {
        return wxInternalPayNo;
    }

    public void setWxInternalPayNo(String wxInternalPayNo) {
        this.wxInternalPayNo = wxInternalPayNo;
    }

    public String getWxTransactionId() {
        return wxTransactionId;
    }

    public void setWxTransactionId(String wxTransactionId) {
        this.wxTransactionId = wxTransactionId;
    }

    public Integer getUserPatientId() {
        return userPatientId;
    }

    public void setUserPatientId(Integer userPatientId) {
        this.userPatientId = userPatientId;
    }

    public Integer getExtStatus() {
        return extStatus;
    }

    public void setExtStatus(Integer extStatus) {
        this.extStatus = extStatus;
    }

    public Integer getConsultType() {
        return consultType;
    }

    public void setConsultType(Integer consultType) {
        this.consultType = consultType;
    }

    public String getIdNo() {
        return idNo;
    }

    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }

    public String getPaymentNo() {
        return paymentNo;
    }

    public void setPaymentNo(String paymentNo) {
        this.paymentNo = paymentNo;
    }

    public Integer getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public String getRefundNo() {
        return refundNo;
    }

    public void setRefundNo(String refundNo) {
        this.refundNo = refundNo;
    }

    public String getRefundCallbackTime() {
        return refundCallbackTime;
    }

    public void setRefundCallbackTime(String refundCallbackTime) {
        this.refundCallbackTime = refundCallbackTime;
    }

    public Integer getOrderId() {
        return orderId;
    }

    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getActivityId() {
        return activityId;
    }

    public void setActivityId(Integer activityId) {
        this.activityId = activityId;
    }

    public Integer getActivityAmount() {
        return activityAmount;
    }

    public void setActivityAmount(Integer activityAmount) {
        this.activityAmount = activityAmount;
    }

    public String getHospitalName() {
        return hospitalName;
    }

    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDoctorName() {
        return doctorName;
    }

    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }

    public Integer getTeamId() {
        return teamId;
    }

    public void setTeamId(Integer teamId) {
        this.teamId = teamId;
    }

    public Integer getTeamOperateDoctorId() {
        return teamOperateDoctorId;
    }

    public void setTeamOperateDoctorId(Integer teamOperateDoctorId) {
        this.teamOperateDoctorId = teamOperateDoctorId;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 是否删除
     */
    public Boolean isDeleted() {
        return deleted;
    }

    /**
     * 终端
     */
    public void setTerminal(Integer terminal) {
        this.terminal = terminal;
    }

    /**
     * 终端
     */
    public Integer getTerminal() {
        return terminal;
    }

    /**
     * 定点医院id
     */
    public void setFixHospitalId(Integer fixHospitalId) {
        this.fixHospitalId = fixHospitalId;
    }

    /**
     * 定点医院id
     */
    public Integer getFixHospitalId() {
        return fixHospitalId;
    }

    @Override
    public String toString() {
        return "ConsultOrder{" +
                "id=" + id + '\'' +
                "userId=" + userId + '\'' +
                "name=" + name + '\'' +
                "mobile=" + mobile + '\'' +
                "age=" + age + '\'' +
                "sex=" + sex + '\'' +
                "description=" + description + '\'' +
                "doctorId=" + doctorId + '\'' +
                "hospitalId=" + hospitalId + '\'' +
                "deptId=" + deptId + '\'' +
                "amount=" + amount + '\'' +
                "paymentStatus=" + paymentStatus + '\'' +
                "consultStatus=" + consultStatus + '\'' +
                "sessionId=" + sessionId + '\'' +
                "deleted=" + deleted + '\'' +
                "updateTime=" + updateTime + '\'' +
                "createTime=" + createTime + '\'' +
                "acceptTime=" + acceptTime + '\'' +
                "patientId=" + patientId + '\'' +
                "wxMerchantId=" + wxMerchantId + '\'' +
                "wxInternalPayNo=" + wxInternalPayNo + '\'' +
                "wxTransactionId=" + wxTransactionId + '\'' +
                "userPatientId=" + userPatientId + '\'' +
                "extStatus=" + extStatus + '\'' +
                "consultType=" + consultType + '\'' +
                "idNo=" + idNo + '\'' +
                "paymentNo=" + paymentNo + '\'' +
                "refundStatus=" + refundStatus + '\'' +
                "refundTime=" + refundTime + '\'' +
                "refundNo=" + refundNo + '\'' +
                "refundCallbackTime=" + refundCallbackTime + '\'' +
                "orderId=" + orderId + '\'' +
                "orderNo=" + orderNo + '\'' +
                "activityId=" + activityId + '\'' +
                "activityAmount=" + activityAmount + '\'' +
                "hospitalName=" + hospitalName + '\'' +
                "deptName=" + deptName + '\'' +
                "doctorName=" + doctorName + '\'' +
                "teamId=" + teamId + '\'' +
                "teamOperateDoctorId=" + teamOperateDoctorId + '\'' +
                "payTime=" + payTime + '\'' +
                "type=" + type + '\'' +
                "terminal=" + terminal + '\'' +
                "fixHospitalId=" + fixHospitalId + '\'' +
                '}';
    }
}