package com.eitc.patient.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * PatientAppointmentVO
 *
 * @author mtx
 * @date: 2024/05/17 14:45
 */
@Data
@ApiModel("患者预约表")
public class PatientAppointmentVO {

    @ApiModelProperty(value = "预约id", name = "appointmentId")
    private String appointmentId;

    @ApiModelProperty(value = "用户编号", name = "medicalRecordNum")
    private String medicalRecordNum;

    @ApiModelProperty(value = "患者姓名", name = "patientName")
    @NotBlank(message = "患者姓名不能为空")
    private String patientName;

    @ApiModelProperty(value = "预约门诊", name = "outpatientService")
    private String outpatientService;

    @ApiModelProperty(value = "预约科室", name = "department")
    private String department;

    @ApiModelProperty(value = "与患者关系", name = "personalRelationship")
    @NotBlank(message = "与患者关系不能为空")
    private String personalRelationship;

    @ApiModelProperty(value = "联系人电话", name = "linkPhone")
    @NotBlank(message = "联系人电话不能为空")
    private String linkPhone;

    @ApiModelProperty(value = "出生日期", name = "birthday")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    @ApiModelProperty(value = "性别（1男，2女，3未知）", name = "sex")
    @NotNull(message = "性别不能为空")
    private Integer sex;

    @ApiModelProperty(value = "预约类型（1就诊，2复诊）", name = "appointmentType")
    private Integer appointmentType;

    @ApiModelProperty(value = "患者来源（1朋友介绍，2自进门店）", name = "patientSource")
    private Integer patientSource;

    @ApiModelProperty(value = "主治医生", name = "attendingDoctor")
    @NotNull(message = "主治医生不能为空")
    private String attendingDoctor;

    @ApiModelProperty(value = "登记人", name = "registerUserId")
    @NotNull(message = "预约人不能为空")
    private Long registerUserId;

    @ApiModelProperty(value = "预约开始时间", name = "appointmentStartTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @NotNull(message = "预约开始时间不能为空")
    private Date appointmentStartTime;

    @ApiModelProperty(value = "预约结束时间", name = "appointmentEndTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @NotNull(message = "预约结束时间不能为空")
    private Date appointmentEndTime;

    @ApiModelProperty(value = "预约项目", name = "appointmentProject")
    private String appointmentProject;

    @ApiModelProperty(value = "身份证号", name = "identificationCard")
    @NotBlank(message = "身份证号不能为空")
    private String identificationCard;

    @ApiModelProperty(value = "备注", name = "remark")
    private String remark;

    @ApiModelProperty(value = "预约状态（1预约，2已确定，3已到店，4治疗中，5治疗完成，6已结账，7已离开，8已失约）", name = "appointmentStatus")
    private Integer appointmentStatus;

}
