package com.bonus.common.entity.bracelet.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @className:PersonDetailVo
 * @author:cwchen
 * @date:2024-08-15-16:52
 * @version:1.0
 * @description:人员详情-vo
 */
@Data
public class PersonDetailVo {

    private Long id;
    /**
     * 手环设备ID
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long braceletId;

    /**
     * 手环编码
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String shCode;

    /**
     * 杆塔ID
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long towerId;
    /**
     * 姓名
     */
    private String name;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 班组名称
     */
    private String teamName;
    /**
     * 身份证号
     */
    private String idCard;
    /**
     * 告警类型
     */
    private String warnName = "正常施工";
    /**
     * 告警类型样式
     */
    private String warnType = "success";
    /**
     * 是否有安全帽
     */
    private Boolean hasSafetyHat = false;

    /**
     * 0 未验证  1 验证通过  2验证不通过
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Integer faceStatus;

    /**
     * 马甲编号
     */
    private String mjCode;

    /**
     * 手环
     */
    private Bracelet bracelet;
    /**
     * 安全帽
     */
    private SafetyHat safetyHat;

    /**
     * 告警内容
     */
    private List<WarnInfo> warnInfoList;

    /**
     * 手环
     */
    @Data
    public static class Bracelet {
        /**
         * 设备ID
         */
        private Long devId;
        /**
         * 设备名称
         */
        private String name;
        /**
         * 电量
         */
        private Double elec = 0D;
        /**
         * 是否告警
         */
        private Integer isWarn = 0;
        /**
         * 温度
         */
        private String temp;
        /**
         * 心率
         */
        private String heartRate;
        /**
         * 血压
         */
        private String bloodPressure;
    }

    @Data
    public static class SafetyHat {
        /**
         * 设备名称
         */
        private String name;
        /**
         * 设备ID
         */
        private Long devId;
        /**
         * 设备编码
         */
        private String devCode;
        /**
         * 设备下标
         */
        private String devIndex;
        /**
         * 设备状态 0：离线 1.在线
         */
        private String devStatus;
    }

    @Data
    public static class WarnInfo {
        /**
         * 告警内容
         */
        private String warnContent;
        /**
         * 告警时间
         */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date warnTime;
    }

}
