package cn.common.resp;

import cn.common.common.utils.ExcelTimeConverter;
import cn.common.common.validation.NotEmpty;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.*;
import java.time.LocalDateTime;

/**
 * 健康档案表信息数据导出请求封装类
 * @title: HealthArchivesExportResp.java
 * @author create by Singer - Singer email:singer-coder@qq.com
 * @date
*/
@Data
@ContentRowHeight(20)
@HeadRowHeight(20)
@ColumnWidth(25)
public class HealthArchivesExportResp implements Serializable {

    private static final long serialVersionUID = 4151170728809621391L;

    /**
     * 性别 1男 2女
     */
    @NotEmpty(message = "性别->不可为空")
    @ExcelProperty(value = "性别")
    private Integer gender;

    /**
     * 生日
     */
    @NotEmpty(message = "生日->不可为空")
    @ExcelProperty(value = "生日",converter = ExcelTimeConverter.class)
    private LocalDateTime birthday;

    /**
     * 真实姓名
     */
    @NotEmpty(message = "真实姓名->不可为空")
    @ExcelProperty(value = "真实姓名")
    private String realName;

    /**
     * 民族
     */
    @NotEmpty(message = "民族->不可为空")
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 职业
     */
    @NotEmpty(message = "职业->不可为空")
    @ExcelProperty(value = "职业")
    private String occupation;

    /**
     * 住址
     */
    @NotEmpty(message = "住址->不可为空")
    @ExcelProperty(value = "住址")
    private String address;

    /**
     * 身份证号
     */
    @NotEmpty(message = "身份证号->不可为空")
    @ExcelProperty(value = "身份证号")
    private String idCardNum;

    /**
     * 联系人姓名
     */
    @NotEmpty(message = "联系人姓名->不可为空")
    @ExcelProperty(value = "联系人姓名")
    private String contactsName;

    /**
     * 联系人电话
     */
    @NotEmpty(message = "联系人电话->不可为空")
    @ExcelProperty(value = "联系人电话")
    private String contactsPhone;

    /**
     * 体温
     */
    @NotEmpty(message = "体温->不可为空")
    @ExcelProperty(value = "体温")
    private String temperature;

    /**
     * 身高
     */
    @NotEmpty(message = "身高->不可为空")
    @ExcelProperty(value = "身高")
    private String stature;

    /**
     * 呼吸频率
     */
    @NotEmpty(message = "呼吸频率->不可为空")
    @ExcelProperty(value = "呼吸频率")
    private String respiratoryRate;

    /**
     * 脉率
     */
    @NotEmpty(message = "脉率->不可为空")
    @ExcelProperty(value = "脉率")
    private Integer pulse;

    /**
     * 体重
     */
    @NotEmpty(message = "体重->不可为空")
    @ExcelProperty(value = "体重")
    private String weight;

    /**
     * 左侧血压
     */
    @NotEmpty(message = "左侧血压->不可为空")
    @ExcelProperty(value = "左侧血压")
    private Integer leftBloodPressure;

    /**
     * 左侧血压
     */
    @NotEmpty(message = "左侧血压->不可为空")
    @ExcelProperty(value = "左侧血压")
    private Integer rightBloodPressure;

    /**
     * 常住类型 01户籍 02非户籍
     */
    @NotEmpty(message = "常住类型 01户籍 02非户籍->不可为空")
    @ExcelProperty(value = "常住类型 01户籍 02非户籍")
    private String residenceType;

    /**
     * 关联人员
     */
    @NotEmpty(message = "关联人员->不可为空")
    @ExcelProperty(value = "关联人员")
    private String authUserId;

    /**
     * 结束时间
     */
    @NotEmpty(message = "结束时间->不可为空")
    @ExcelProperty(value = "结束时间",converter = ExcelTimeConverter.class)
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDateTime endTime;

    /**
     * 开始时间
     */
    @NotEmpty(message = "开始时间->不可为空")
    @ExcelProperty(value = "开始时间",converter = ExcelTimeConverter.class)
    @JSONField(format="yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDateTime beginTime;

}
