package com.xinelu.familydoctor.applet.pojo.vo;

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

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author mengkuiliang
 * @Description 签约详情类
 * @Date 2023-09-26 026 11:02
 * @Param
 * @return
 **/
@ApiModel("签约详情类")
@Data
public class SignInfoDetailVo {

    /**
     * 签约业务主键
     */
    @ApiModelProperty(value = "签约业务主键")
    private String signNo;

    /**
     * 居民用户业务主键
     */
    @ApiModelProperty(value = "居民用户业务主键")
    private String residentNo;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String residentName;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄")
    private String age;

    /**
     * 性别（1：男 2：女 99：未知）
     */
    @ApiModelProperty(value = "性别（1：男 2：女 99：未知）")
    private String gender;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    private String phone;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String identity;

    /**
     * 民族
     */
    @ApiModelProperty(value = "民族")
    private String nation;

    /**
     * 出生日期（YYYY-MM-DD）
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "出生日期（yyyy-MM-dd）")
    private Date birthday;

    /**
     * 省
     */
    @ApiModelProperty(value = "省")
    private String province;

    /**
     * 省名称
     */
    @ApiModelProperty(value = "省名称")
    private String provinceName;

    /**
     * 市
     */
    @ApiModelProperty(value = "市")
    private String city;

    /**
     * 市名称
     */
    @ApiModelProperty(value = "市名称")
    private String cityName;

    /**
     * 区/县
     */
    @ApiModelProperty(value = "区/县")
    private String county;

    /**
     * 区/县名称
     */
    @ApiModelProperty(value = "区/县名称")
    private String countyName;

    /**
     * 乡镇/街道
     */
    @ApiModelProperty(value = "乡镇/街道")
    private String town;

    /**
     * 乡镇/街道名称
     */
    @ApiModelProperty(value = "乡镇/街道名称")
    private String townName;

    /**
     * 社区/乡村
     */
    @ApiModelProperty(value = "社区/乡村")
    private String committee;

    /**
     * 社区/乡村名称
     */
    @ApiModelProperty(value = "社区/乡村名称")
    private String committeeName;

    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址")
    private String address;

    /**
     * 居民头像照片
     */
    @ApiModelProperty(value = "居民头像照片")
    private String residentAvatar;

    /**
     * 居民签名照片
     */
    @ApiModelProperty(value = "居民签名照片")
    private String residentAutographPath;

    /**
     * 医生签名照片
     */
    @ApiModelProperty(value = "医生签名照片")
    private String doctorAutographPath;

    /**
     * 医保卡号
     */
    @ApiModelProperty(value = "医保卡号")
    private String medicare;

    /**
     * 签约医生业务主键
     */
    @ApiModelProperty(value = "签约医生业务主键")
    private String userNo;

    /**
     * 签约医生名称
     */
    @ApiModelProperty(value = "签约医生名称")
    private String userName;

    /**
     * 责任医生业务主键
     */
    @ApiModelProperty(value = "责任医生业务主键")
    private String dutyDoctorNo;

    /**
     * 责任医生名称
     */
    @ApiModelProperty(value = "责任医生名称")
    private String dutyDoctorName;

    /**
     * 责任医生集合
     */
    @ApiModelProperty(value = "责任医生集合")
    List<DoctorDetailVo> dutyDoctorList;

    /**
     * 团队编号
     */
    @ApiModelProperty(value = "团队编号")
    private String teamNo;

    /**
     * 团队名称
     */
    @ApiModelProperty(value = "团队名称")
    private String teamName;

    /**
     * 签约机构编号
     */
    @ApiModelProperty(value = "签约机构编号")
    private String orgNo;

    /**
     * 签约机构名称
     */
    @ApiModelProperty(value = "签约机构名称")
    private String orgName;

    /**
     * 服务机构编号
     */
    @ApiModelProperty(value = "服务机构编号")
    private String agencyOrgNo;

    /**
     * 服务机构名称
     */
    @ApiModelProperty(value = "服务机构名称")
    private String agencyOrgName;

    /**
     * 人群编号（，号隔开）
     */
    @ApiModelProperty(value = "人群编号（，号隔开）")
    private String crowdsNo;

    /**
     * 人群名称（，号隔开）
     */
    @ApiModelProperty(value = "人群名称（，号隔开）")
    private String crowdsName;

    /**
     * 人群集合
     */
    @ApiModelProperty(value = "人群集合")
    private List<CrowdVo> crowdList;

    /**
     * 服务包编号（，号隔开）
     */
    @ApiModelProperty(value = "服务包编号（，号隔开）")
    private String packagesNo;

    /**
     * 服务包名称（，号隔开）
     */
    @ApiModelProperty(value = "服务包名称（，号隔开）")
    private String packagesName;

    /**
     * 服务包集合
     */
    @ApiModelProperty(value = "服务集合")
    private List<PackageListVo> packageList;

    /**
     * 签约时间
     */
    @ApiModelProperty(value = "签约时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date signTime;

    /**
     * 到期时间
     */
    @ApiModelProperty(value = "到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date signDeadline;

    /**
     * 首次签约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "首次签约时间")
    private Date firstSignTime;

    /**
     * 家庭编号
     */
    @ApiModelProperty(value = "家庭编号")
    private String familyNo;

    /**
     * 家庭名称
     */
    @ApiModelProperty(value = "家庭名称")
    private String familyName;

    /**
     * 是否为户主（0：否 1：是）
     */
    @ApiModelProperty(value = "是否为户主（0：否 1：是）")
    private Boolean householder;

    /**
     * 户主姓名
     */
    @ApiModelProperty(value = "户主姓名")
    private String householderName;

    /**
     * 户主身份证号
     */
    @ApiModelProperty(value = "户主身份证号")
    private String householderIdentity;

    /**
     * 与户主关系（字典）
     */
    @ApiModelProperty(value = "与户主关系（字典）")
    private String relationshipWithHouseholder;

    /**
     * 是否纳入重点人群（0：否 1：是）
     */
    @ApiModelProperty(value = "是否纳入重点人群（0：否 1：是）")
    private Boolean focusGroups;

    /**
     * 是否在公卫建档（0：否 1：是）
     */
    @ApiModelProperty(value = "是否在公卫建档")
    private Boolean archivingInPh;

    /**
     * 履约是否完成（0：未完成 1：已完成）
     */
    @ApiModelProperty(value = "履约是否完成（0：未完成 1：已完成）")
    private String perComplete;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

}
