package com.yihu.wlyy.entity.consult;

import java.sql.Time;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.doctor.profile.DoctorComment;
import com.yihu.wlyy.entity.IdEntity;
import io.swagger.annotations.Api;

/**
 * 电话视频咨询信息對象
 * @author George
 *
 */

@Entity
@Table(name = "wlyy_consult_movi")
@Api(description = "电视咨询")
public class ConsultMoVi extends IdEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8996800633072164852L;

	// 咨询标识
	private String consult;
	// 医生标识
	private String doctor;
	// 医生姓名
	private String doctorName;
	// 三师团队
	private String team;
	// 三师团队名称
	private String teamName;
	// 预约类型：1指定医生，2三师预约
	private Integer target;
	// 患者标识
	private String patient;
	// 家人标识
	private String family;
	// 患者姓名
	private String name;
	// 患者性别
	private Integer sex;
	// 患者生日
	private Date birthday;
	// 患者头像
	private String photo;
	// 预约内容说明
	private String content;
	// 咨询类型，1电话咨询，2视频咨询
	private Integer type;
	// 排班标识
	private String scheduling;
	// 预约日期
	private Date appoDate;
	// 预约星期
	private Integer appoWeek;
	// 预约开始时间
	private Time hourBegin;
	// 预约结束时间
	private Time hourEnd;
	// 图片URL，多图逗号分隔
	private String images;
	// 咨询状态：0待医生同意，-1医生拒绝，1医生同意，2咨询完成
	private Integer status;
	// 评价标识，为空说明未评价
	private DoctorComment comment;
	// 咨询时间
	private Date czrq;
	// 作废标识，1正常，0作废
	private String del;

	public String getConsult() {
		return consult;
	}

	public void setConsult(String consult) {
		this.consult = consult;
	}

	public String getDoctor() {
		return doctor;
	}

	public void setDoctor(String doctor) {
		this.doctor = doctor;
	}

	@Column(name = "doctor_name")
	public String getDoctorName() {
		return doctorName;
	}

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

	public String getTeam() {
		return team;
	}

	public void setTeam(String team) {
		this.team = team;
	}

	@Column(name = "team_name")
	public String getTeamName() {
		return teamName;
	}

	public void setTeamName(String teamName) {
		this.teamName = teamName;
	}

	public Integer getTarget() {
		return target;
	}

	public void setTarget(Integer target) {
		this.target = target;
	}

	public String getPatient() {
		return patient;
	}

	public void setPatient(String patient) {
		this.patient = patient;
	}

	public String getFamily() {
		return family;
	}

	public void setFamily(String family) {
		this.family = family;
	}

	public String getName() {
		return name;
	}

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

	public Integer getSex() {
		return sex;
	}

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

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getPhoto() {
		return photo;
	}

	public void setPhoto(String photo) {
		this.photo = photo;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Integer getType() {
		return type;
	}

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

	public String getScheduling() {
		return scheduling;
	}

	public void setScheduling(String scheduling) {
		this.scheduling = scheduling;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	public Date getAppoDate() {
		return appoDate;
	}

	public void setAppoDate(Date appoDate) {
		this.appoDate = appoDate;
	}

	public Integer getAppoWeek() {
		return appoWeek;
	}

	public void setAppoWeek(Integer appoWeek) {
		this.appoWeek = appoWeek;
	}

	@Column(name = "hour_begin")
	public Time getHourBegin() {
		return hourBegin;
	}

	public void setHourBegin(Time hourBegin) {
		this.hourBegin = hourBegin;
	}

	@Column(name = "hour_end")
	public Time getHourEnd() {
		return hourEnd;
	}

	public void setHourEnd(Time hourEnd) {
		this.hourEnd = hourEnd;
	}

	public String getImages() {
		return images;
	}

	public void setImages(String images) {
		this.images = images;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY, targetEntity = DoctorComment.class, optional = true)
	@JoinColumn(name = "comment", referencedColumnName = "code", insertable = true)
	public DoctorComment getComment() {
		return comment;
	}

	public void setComment(DoctorComment comment) {
		this.comment = comment;
	}

	public Date getCzrq() {
		return czrq;
	}

	public void setCzrq(Date czrq) {
		this.czrq = czrq;
	}

	public String getDel() {
		return del;
	}

	public void setDel(String del) {
		this.del = del;
	}

}
