package com.cm.smartgate.pojo.vos.check;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.List;

/**
 * When you feel like quitting. Think about why you started
 * 当你想要放弃的时候，想想当初你为何开始
 *
 * @ClassName: SmartGateCheckVO
 * @Description: 智慧闸机校验
 * @Author: WangGeng
 * @Date: 2020/8/27 16:47
 * @Version: 1.0
 **/
@ApiModel
public class SmartGateCheckVO {

    @ApiModelProperty(name = "Channel", value = "通道")
    private Integer Channel;
    @ApiModelProperty(name = "PicID", value = "图片ID")
    private String PicID;
    @ApiModelProperty(name = "SendTimes", value = "发送时间")
    private Integer SendTimes;
    @ApiModelProperty(name = "Transfer", value = "传输类型")
    private String Transfer;
    @ApiModelProperty(name = "Events", value = "事件")
    private List<EventVO> Events;

    public Integer getChannel() {
        return Channel;
    }

    public void setChannel(Integer channel) {
        Channel = channel;
    }

    public String getPicID() {
        return PicID == null ? "" : PicID.trim();
    }

    public void setPicID(String picID) {
        PicID = picID;
    }

    public Integer getSendTimes() {
        return SendTimes;
    }

    public void setSendTimes(Integer sendTimes) {
        SendTimes = sendTimes;
    }

    public String getTransfer() {
        return Transfer == null ? "" : Transfer.trim();
    }

    public void setTransfer(String transfer) {
        Transfer = transfer;
    }

    public List<EventVO> getEvents() {
        if (Events == null) {
            return new ArrayList<>();
        }
        return Events;
    }

    public void setEvents(List<EventVO> events) {
        Events = events;
    }

    @ApiModel
    public static class EventVO {
        @ApiModelProperty(name = "Code", value = "事件类型")
        private String Code;
        @ApiModelProperty(name = "UTC", value = "当地UTC时间")
        private Long UTC;
        @ApiModelProperty(name = "UTCMS", value = "单位ms,当地UTC时间毫秒位,范围[0,999]")
        private Long UTCMS;
        @ApiModelProperty(name = "TimeZone", value = "当地时区")
        private String TimeZone;
        @ApiModelProperty(name = "ObjectID", value = "物体ID")
        private Integer ObjectID;
        @ApiModelProperty(name = "Object", value = "详细的人脸信息")
        private FaceInfoVO Object;
        @ApiModelProperty(name = "Pass", value = "是否通过识别")
        private Integer Pass;
        @ApiModelProperty(name = "IDCardsInfo", value = "身份证信息")
        private CardsInfoVO CardsInfo;

        public String getCode() {
            return Code == null ? "" : Code.trim();
        }

        public void setCode(String code) {
            Code = code;
        }

        public Long getUTC() {
            return UTC;
        }

        public void setUTC(Long UTC) {
            this.UTC = UTC;
        }

        public Long getUTCMS() {
            return UTCMS;
        }

        public void setUTCMS(Long UTCMS) {
            this.UTCMS = UTCMS;
        }

        public String getTimeZone() {
            return TimeZone == null ? "" : TimeZone.trim();
        }

        public void setTimeZone(String timeZone) {
            TimeZone = timeZone;
        }

        public Integer getObjectID() {
            return ObjectID;
        }

        public void setObjectID(Integer objectID) {
            ObjectID = objectID;
        }

        public FaceInfoVO getObject() {
            return Object;
        }

        public void setObject(FaceInfoVO object) {
            Object = object;
        }

        public Integer getPass() {
            return Pass;
        }

        public void setPass(Integer pass) {
            Pass = pass;
        }

        public CardsInfoVO getCardsInfo() {
            return CardsInfo;
        }

        public void setCardsInfo(CardsInfoVO cardsInfo) {
            CardsInfo = cardsInfo;
        }

        @ApiModel
        public static class FaceInfoVO {
            @ApiModelProperty(name = "ObjectID", value = "人脸ID")
            private Integer ObjectID;
            @ApiModelProperty(name = "BoundingBox", value = "人脸坐标,范围[0,8191],4个点分别表示左、上、右、下")
            private List<Integer> BoundingBox;
            @ApiModelProperty(name = "PosePitch", value = "上下俯仰角度")
            private Double PosePitch;
            @ApiModelProperty(name = "PoseRoll", value = "左右摇摆角度")
            private Double PoseRoll;
            @ApiModelProperty(name = "PoseYaw", value = "水平旋转角度")
            private Double PoseYaw;
            @ApiModelProperty(name = "Blur", value = "模糊度,0表示最清晰,值越大越模糊")
            private Double Blur;
            @ApiModelProperty(name = "Sex", value = "性别 Unknown:未知 Male:男性, Female:女性")
            private String Sex;
            @ApiModelProperty(name = "Age", value = "年龄0表示未知")
            private Integer Age;
            @ApiModelProperty(name = "Minority", value = "民族0-未知 1-非少数民族 2-少数民族")
            private Integer Minority;
            @ApiModelProperty(name = "Temperature", value = "float,体温,摄氏度")
            private Double Temperature;
            @ApiModelProperty(name = "Mounthoc", value = "0未知,1戴口罩,2未戴口罩")
            private Integer Mounthoc;

            public Integer getObjectID() {
                return ObjectID;
            }

            public void setObjectID(Integer objectID) {
                ObjectID = objectID;
            }

            public List<Integer> getBoundingBox() {
                if (BoundingBox == null) {
                    return new ArrayList<>();
                }
                return BoundingBox;
            }

            public void setBoundingBox(List<Integer> boundingBox) {
                BoundingBox = boundingBox;
            }

            public Double getPosePitch() {
                return PosePitch;
            }

            public void setPosePitch(Double posePitch) {
                PosePitch = posePitch;
            }

            public Double getPoseRoll() {
                return PoseRoll;
            }

            public void setPoseRoll(Double poseRoll) {
                PoseRoll = poseRoll;
            }

            public Double getPoseYaw() {
                return PoseYaw;
            }

            public void setPoseYaw(Double poseYaw) {
                PoseYaw = poseYaw;
            }

            public Double getBlur() {
                return Blur;
            }

            public void setBlur(Double blur) {
                Blur = blur;
            }

            public String getSex() {
                return Sex == null ? "" : Sex.trim();
            }

            public void setSex(String sex) {
                Sex = sex;
            }

            public Integer getAge() {
                return Age;
            }

            public void setAge(Integer age) {
                Age = age;
            }

            public Integer getMinority() {
                return Minority;
            }

            public void setMinority(Integer minority) {
                Minority = minority;
            }

            public Double getTemperature() {
                return Temperature;
            }

            public void setTemperature(Double temperature) {
                Temperature = temperature;
            }

            public Integer getMounthoc() {
                return Mounthoc;
            }

            public void setMounthoc(Integer mounthoc) {
                Mounthoc = mounthoc;
            }
        }

        @ApiModel
        public static class CardsInfoVO {
            @ApiModelProperty(name = "Name", value = "姓名")
            private String Name;
            @ApiModelProperty(name = "Sex", value = "性别")
            private String Sex;
            @ApiModelProperty(name = "Nation", value = "民族")
            private String Nation;
            @ApiModelProperty(name = "Number", value = "证件号")
            private String Number;
            @ApiModelProperty(name = "Height", value = "高")
            private String Height;
            @ApiModelProperty(name = "Width", value = "宽")
            private String Width;
            @ApiModelProperty(name = "Address", value = "家庭住址")
            private String Address;
            @ApiModelProperty(name = "Office", value = "签发机关")
            private String Office;
            @ApiModelProperty(name = "Birthday", value = "生日")
            private String Birthday;
            @ApiModelProperty(name = "ValidTimeStart", value = "证件有效期开始时间")
            private String ValidTimeStart;
            @ApiModelProperty(name = "ValidTimeStop", value = "证件有效期结束时间")
            private String ValidTimeStop;
            @ApiModelProperty(name = "ProfilePic", value = "证件图片")
            private String ProfilePic;

            public String getName() {
                return Name == null ? "" : Name.trim();
            }

            public void setName(String name) {
                Name = name;
            }

            public String getSex() {
                return Sex == null ? "" : Sex.trim();
            }

            public void setSex(String sex) {
                Sex = sex;
            }

            public String getNation() {
                return Nation == null ? "" : Nation.trim();
            }

            public void setNation(String nation) {
                Nation = nation;
            }

            public String getNumber() {
                return Number == null ? "" : Number.trim();
            }

            public void setNumber(String number) {
                Number = number;
            }

            public String getHeight() {
                return Height == null ? "" : Height.trim();
            }

            public void setHeight(String height) {
                Height = height;
            }

            public String getWidth() {
                return Width == null ? "" : Width.trim();
            }

            public void setWidth(String width) {
                Width = width;
            }

            public String getAddress() {
                return Address == null ? "" : Address.trim();
            }

            public void setAddress(String address) {
                Address = address;
            }

            public String getOffice() {
                return Office == null ? "" : Office.trim();
            }

            public void setOffice(String office) {
                Office = office;
            }

            public String getBirthday() {
                return Birthday == null ? "" : Birthday.trim();
            }

            public void setBirthday(String birthday) {
                Birthday = birthday;
            }

            public String getValidTimeStart() {
                return ValidTimeStart == null ? "" : ValidTimeStart.trim();
            }

            public void setValidTimeStart(String validTimeStart) {
                ValidTimeStart = validTimeStart;
            }

            public String getValidTimeStop() {
                return ValidTimeStop == null ? "" : ValidTimeStop.trim();
            }

            public void setValidTimeStop(String validTimeStop) {
                ValidTimeStop = validTimeStop;
            }

            public String getProfilePic() {
                return ProfilePic == null ? "" : ProfilePic.trim();
            }

            public void setProfilePic(String profilePic) {
                ProfilePic = profilePic;
            }
        }
    }
}
