package com.ywt.mg.domain.entities;

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

@Table(name = "registered_order")
@Entity
public class RegisteredOrder {

    /**
     * 主键
     */
    @Id
    private Integer id;

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

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

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

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

    /**
     * 医生姓名
     */
    @Column(name = "doctor_name", nullable = false)
    private String doctorName;

    /**
     * 总费用（以分为单位）
     */
    @Column(name = "total", nullable = false)
    private Integer total;

    /**
     * 预约日期
     */
    @Column(name = "registered_date", nullable = false)
    private Date registeredDate;

    /**
     * 预约时间段
     */
    @Column(name = "registered_period", nullable = false)
    private Integer registeredPeriod;

    /**
     * 分时开始时间，格式：HH:MI
     */
    @Column(name = "start_time", nullable = false)
    private String startTime;

    /**
     * 分时结束时间，格式：HH:MI
     */
    @Column(name = "end_time", nullable = false)
    private String endTime;

    /**
     * HIS系统就诊人Id
     */
    @Column(name = "his_patient_id", nullable = false)
    private String hisPatientId;

    /**
     * 就诊卡Id
     */
    @Column(name = "medical_card_id", nullable = false)
    private Integer medicalCardId;

    /**
     * 就诊人
     */
    @Column(name = "patient_name", nullable = false)
    private String patientName;

    /**
     * 支付方式
     */
    @Column(name = "payment_channel", nullable = false)
    private Integer paymentChannel;

    /**
     * 是否删除（标识物理删除）
     */
    @Column(name = "deleted", nullable = false)
    private Boolean deleted;

    /**
     * 更新时间
     */
    @Column(name = "update_time", nullable = false)
    private Date updateTime;

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


    /**
     * 门诊排班项记录标识
     */
    @Column(name = "schedule_item_code", nullable = false)
    private String scheduleItemCode;

    /**
     * 医生编号
     */
    @Column(name = "doctor_code")
    private String doctorCode;


    /**
     * 预约科室编号
     */
    @Column(name = "dept_code")
    private String deptCode;

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

    /**
     * 挂号费
     */
    @Column(name = "registered_fee", nullable = false)
    private Integer registeredFee;

    /**
     * 诊疗费
     */
    @Column(name = "medical_fee", nullable = false)
    private Integer medicalFee;

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

    /**
     * 挂号订单状态
     */
    @Column(name = "registered_status", nullable = false)
    private Integer registeredStatus;

    /**
     * 备注
     */
    @Column(name = "remark")
    private String remark;

    /**
     * 预约单号
     */
    @Column(name = "his_order_code")
    private String hisOrderCode;

    /**
     * 挂号序号
     */
    @Column(name = "his_seq_code")
    private String hisSeqCode;

    /**
     * 挂号费
     */
    @Column(name = "his_reg_fee")
    private String hisRegFee;

    /**
     * 就诊时间段
     */
    @Column(name = "his_admit_range")
    private String hisAdmitRange;

    /**
     * 就诊地点
     */
    @Column(name = "his_admit_address")
    private String hisAdmitAddress;

    /**
     * 预约单内容
     */
    @Column(name = "his_order_content")
    private String hisOrderContent;

    /**
     * 交易流水号
     */
    @Column(name = "his_transaction_id")
    private String hisTransactionId;

    /**
     * 订单来源
     */
    @Column(name = "source", nullable = false)
    private Integer source;

    /**
     * 诊断号
     */
    @Column(name = "his_clinic_code")
    private String hisClinicCode;

    /**
     * 患者性别
     */
    @Column(name = "patient_sex", nullable = false)
    private Integer patientSex;


    /**
     * 医生职称
     */
    @Column(name = "doctor_title")
    private String doctorTitle;

    /**
     * 微信商户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;

    /**
     * 预约类型：2-加号预约，1-普通预约
     */
    @Column(name = "registered_type")
    private Integer registeredType;

    /**
     * 加号标识Id
     */
    @Column(name = "flag_id")
    private Integer flagId;

    //支付流水号
    @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 Date refundCallbackTime;

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

    //订单号
    @Column(name = "order_no")
    private String orderNo;

    //支付时间
    @Column(name = "payment_time")
    private Date paymentTime;

    @Column(name = "medical_card_no")
    private String medicalCardNo;


    /**
     * 取消订单的备注
     */
    @Column(name = "cancel_remark")
    private String cancelRemark;



    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 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 getDoctorId() {
        return doctorId;
    }

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

    public String getDoctorName() {
        return doctorName;
    }

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

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    public Date getRegisteredDate() {
        return registeredDate;
    }

    public void setRegisteredDate(Date registeredDate) {
        this.registeredDate = registeredDate;
    }

    public Integer getRegisteredPeriod() {
        return registeredPeriod;
    }

    public void setRegisteredPeriod(Integer registeredPeriod) {
        this.registeredPeriod = registeredPeriod;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getHisPatientId() {
        return hisPatientId;
    }

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

    public Integer getMedicalCardId() {
        return medicalCardId;
    }

    public void setMedicalCardId(Integer medicalCardId) {
        this.medicalCardId = medicalCardId;
    }

    public String getPatientName() {
        return patientName;
    }

    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    public Integer getPaymentChannel() {
        return paymentChannel;
    }

    public void setPaymentChannel(Integer paymentChannel) {
        this.paymentChannel = paymentChannel;
    }

    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 String getScheduleItemCode() {
        return scheduleItemCode;
    }

    public void setScheduleItemCode(String scheduleItemCode) {
        this.scheduleItemCode = scheduleItemCode;
    }

    public String getDoctorCode() {
        return doctorCode;
    }

    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getDeptName() {
        return deptName;
    }

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

    public Integer getRegisteredFee() {
        return registeredFee;
    }

    public void setRegisteredFee(Integer registeredFee) {
        this.registeredFee = registeredFee;
    }

    public Integer getMedicalFee() {
        return medicalFee;
    }

    public void setMedicalFee(Integer medicalFee) {
        this.medicalFee = medicalFee;
    }

    public Integer getPaymentStatus() {
        return paymentStatus;
    }

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

    public Integer getRegisteredStatus() {
        return registeredStatus;
    }

    public void setRegisteredStatus(Integer registeredStatus) {
        this.registeredStatus = registeredStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getHisOrderCode() {
        return hisOrderCode;
    }

    public void setHisOrderCode(String hisOrderCode) {
        this.hisOrderCode = hisOrderCode;
    }

    public String getHisSeqCode() {
        return hisSeqCode;
    }

    public void setHisSeqCode(String hisSeqCode) {
        this.hisSeqCode = hisSeqCode;
    }

    public String getHisRegFee() {
        return hisRegFee;
    }

    public void setHisRegFee(String hisRegFee) {
        this.hisRegFee = hisRegFee;
    }

    public String getHisAdmitRange() {
        return hisAdmitRange;
    }

    public void setHisAdmitRange(String hisAdmitRange) {
        this.hisAdmitRange = hisAdmitRange;
    }

    public String getHisAdmitAddress() {
        return hisAdmitAddress;
    }

    public void setHisAdmitAddress(String hisAdmitAddress) {
        this.hisAdmitAddress = hisAdmitAddress;
    }

    public String getHisOrderContent() {
        return hisOrderContent;
    }

    public void setHisOrderContent(String hisOrderContent) {
        this.hisOrderContent = hisOrderContent;
    }

    public String getHisTransactionId() {
        return hisTransactionId;
    }

    public void setHisTransactionId(String hisTransactionId) {
        this.hisTransactionId = hisTransactionId;
    }

    public Integer getSource() {
        return source;
    }

    public void setSource(Integer source) {
        this.source = source;
    }

    public String getHisClinicCode() {
        return hisClinicCode;
    }

    public void setHisClinicCode(String hisClinicCode) {
        this.hisClinicCode = hisClinicCode;
    }

    public Integer getPatientSex() {
        return patientSex;
    }

    public void setPatientSex(Integer patientSex) {
        this.patientSex = patientSex;
    }

    public String getDoctorTitle() {
        return doctorTitle;
    }

    public void setDoctorTitle(String doctorTitle) {
        this.doctorTitle = doctorTitle;
    }

    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 getRegisteredType() {
        return registeredType;
    }

    public void setRegisteredType(Integer registeredType) {
        this.registeredType = registeredType;
    }

    public Integer getFlagId() {
        return flagId;
    }

    public void setFlagId(Integer flagId) {
        this.flagId = flagId;
    }

    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 Date getRefundCallbackTime() {
        return refundCallbackTime;
    }

    public void setRefundCallbackTime(Date 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 Date getPaymentTime() {
        return paymentTime;
    }

    public void setPaymentTime(Date paymentTime) {
        this.paymentTime = paymentTime;
    }

    public String getMedicalCardNo() {
        return medicalCardNo;
    }

    public void setMedicalCardNo(String medicalCardNo) {
        this.medicalCardNo = medicalCardNo;
    }

    public String getCancelRemark() {
        return cancelRemark;
    }

    public void setCancelRemark(String cancelRemark) {
        this.cancelRemark = cancelRemark;
    }
}
