package com.mortals.xhx.module.face.model;

import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.face.model.vo.FacePlanVo;
/**
* 人员识别计划信息实体对象
*
* @author zxfei
* @date 2023-04-15
*/

public class FacePlanEntity extends FacePlanVo {
    private static final long serialVersionUID = 1L;

    /**
    * 重点人员计划
    */
    private String indexCode;
    /**
    * 名称
    */
    @Excel(name = "名称")
    private String name;
    /**
    * 人脸分组的唯一标识集合，逗号分割
    */
    @Excel(name = "人脸分组的唯一标识集合，逗号分割")
    private String faceGroupIndexCodes;
    /**
    * 人脸分组的唯一标识集合，逗号分割
    */
    @Excel(name = "人脸分组的唯一标识集合，逗号分割")
    private String cameraIndexCodes;
    /**
    * 识别资源的唯一标识集合，逗号分割
    */
    @Excel(name = "识别资源的唯一标识集合，逗号分割")
    private String recognitionResourceIndexCodes;
    /**
    * 识别资源类型，SUPER_BRAIN 超脑，FACE_RECOGNITION_SERVER 脸谱，COMPARISON 深眸
    */
    @Excel(name = "识别资源类型，SUPER_BRAIN 超脑，FACE_RECOGNITION_SERVER 脸谱，COMPARISON 深眸")
    private String recognitionResourceType;
    /**
    * 识别计划的类型, BLACK_LIST-重点人员识别计划 WHITE_LIST-陌生人识别计划(BLACK_LIST.重点人员识别计划, WHITE_LIST.陌生人识别计划)
    */
    @Excel(name = "识别计划的类型, BLACK_LIST-重点人员识别计划 WHITE_LIST-陌生人识别计划", readConverterExp = "BLACK_LIST=重点人员识别计划, WHITE_LIST.陌生人识别计划")
    private String recognitionPlanType;
    /**
    * 状态
    */
    @Excel(name = "状态")
    private String status;
    /**
    * 是否启用,true:启用,false:禁用
    */
    @Excel(name = "是否启用,true:启用,false:禁用")
    private String available;
    /**
    * 描述
    */
    @Excel(name = "描述")
    private String description;
    /**
    * 启用时间
    */
    @Excel(name = "启用时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;
    /**
    * 启用时间
    */
    private Long usingTime;
    /**
    * 阈值 0-100
    */
    private Integer threshold;



    public FacePlanEntity(){}
    /**
    * 获取 重点人员计划
    * @return String
    */
    public String getIndexCode(){
        return indexCode;
    }
    /**
    * 设置 重点人员计划
    * @param indexCode
    */
    public void setIndexCode(String indexCode){
        this.indexCode = indexCode;
    }
    /**
    * 获取 名称
    * @return String
    */
    public String getName(){
        return name;
    }
    /**
    * 设置 名称
    * @param name
    */
    public void setName(String name){
        this.name = name;
    }
    /**
    * 获取 人脸分组的唯一标识集合，逗号分割
    * @return String
    */
    public String getFaceGroupIndexCodes(){
        return faceGroupIndexCodes;
    }
    /**
    * 设置 人脸分组的唯一标识集合，逗号分割
    * @param faceGroupIndexCodes
    */
    public void setFaceGroupIndexCodes(String faceGroupIndexCodes){
        this.faceGroupIndexCodes = faceGroupIndexCodes;
    }
    /**
    * 获取 人脸分组的唯一标识集合，逗号分割
    * @return String
    */
    public String getCameraIndexCodes(){
        return cameraIndexCodes;
    }
    /**
    * 设置 人脸分组的唯一标识集合，逗号分割
    * @param cameraIndexCodes
    */
    public void setCameraIndexCodes(String cameraIndexCodes){
        this.cameraIndexCodes = cameraIndexCodes;
    }
    /**
    * 获取 识别资源的唯一标识集合，逗号分割
    * @return String
    */
    public String getRecognitionResourceIndexCodes(){
        return recognitionResourceIndexCodes;
    }
    /**
    * 设置 识别资源的唯一标识集合，逗号分割
    * @param recognitionResourceIndexCodes
    */
    public void setRecognitionResourceIndexCodes(String recognitionResourceIndexCodes){
        this.recognitionResourceIndexCodes = recognitionResourceIndexCodes;
    }
    /**
    * 获取 识别资源类型，SUPER_BRAIN 超脑，FACE_RECOGNITION_SERVER 脸谱，COMPARISON 深眸
    * @return String
    */
    public String getRecognitionResourceType(){
        return recognitionResourceType;
    }
    /**
    * 设置 识别资源类型，SUPER_BRAIN 超脑，FACE_RECOGNITION_SERVER 脸谱，COMPARISON 深眸
    * @param recognitionResourceType
    */
    public void setRecognitionResourceType(String recognitionResourceType){
        this.recognitionResourceType = recognitionResourceType;
    }
    /**
    * 获取 识别计划的类型, BLACK_LIST-重点人员识别计划 WHITE_LIST-陌生人识别计划(BLACK_LIST.重点人员识别计划, WHITE_LIST.陌生人识别计划)
    * @return String
    */
    public String getRecognitionPlanType(){
        return recognitionPlanType;
    }
    /**
    * 设置 识别计划的类型, BLACK_LIST-重点人员识别计划 WHITE_LIST-陌生人识别计划(BLACK_LIST.重点人员识别计划, WHITE_LIST.陌生人识别计划)
    * @param recognitionPlanType
    */
    public void setRecognitionPlanType(String recognitionPlanType){
        this.recognitionPlanType = recognitionPlanType;
    }
    /**
    * 获取 状态
    * @return String
    */
    public String getStatus(){
        return status;
    }
    /**
    * 设置 状态
    * @param status
    */
    public void setStatus(String status){
        this.status = status;
    }
    /**
    * 获取 是否启用,true:启用,false:禁用
    * @return String
    */
    public String getAvailable(){
        return available;
    }
    /**
    * 设置 是否启用,true:启用,false:禁用
    * @param available
    */
    public void setAvailable(String available){
        this.available = available;
    }
    /**
    * 获取 描述
    * @return String
    */
    public String getDescription(){
        return description;
    }
    /**
    * 设置 描述
    * @param description
    */
    public void setDescription(String description){
        this.description = description;
    }
    /**
    * 获取 启用时间
    * @return Date
    */
    public Date getStartTime(){
        return startTime;
    }
    /**
    * 设置 启用时间
    * @param startTime
    */
    public void setStartTime(Date startTime){
        this.startTime = startTime;
    }
    /**
    * 获取 启用时间
    * @return Long
    */
    public Long getUsingTime(){
        return usingTime;
    }
    /**
    * 设置 启用时间
    * @param usingTime
    */
    public void setUsingTime(Long usingTime){
        this.usingTime = usingTime;
    }
    /**
    * 获取 阈值 0-100
    * @return Integer
    */
    public Integer getThreshold(){
        return threshold;
    }
    /**
    * 设置 阈值 0-100
    * @param threshold
    */
    public void setThreshold(Integer threshold){
        this.threshold = threshold;
    }




    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof FacePlanEntity) {
            FacePlanEntity tmp = (FacePlanEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",indexCode:").append(getIndexCode());
        sb.append(",name:").append(getName());
        sb.append(",faceGroupIndexCodes:").append(getFaceGroupIndexCodes());
        sb.append(",cameraIndexCodes:").append(getCameraIndexCodes());
        sb.append(",recognitionResourceIndexCodes:").append(getRecognitionResourceIndexCodes());
        sb.append(",recognitionResourceType:").append(getRecognitionResourceType());
        sb.append(",recognitionPlanType:").append(getRecognitionPlanType());
        sb.append(",status:").append(getStatus());
        sb.append(",available:").append(getAvailable());
        sb.append(",description:").append(getDescription());
        sb.append(",startTime:").append(getStartTime());
        sb.append(",usingTime:").append(getUsingTime());
        sb.append(",threshold:").append(getThreshold());
        return sb.toString();
    }

    public void initAttrValue(){

            this.indexCode = "";

            this.name = "";

            this.faceGroupIndexCodes = "";

            this.cameraIndexCodes = "";

            this.recognitionResourceIndexCodes = "";

            this.recognitionResourceType = "";

            this.recognitionPlanType = "";

            this.status = "";

            this.available = "true";

            this.description = "";

            this.startTime = null;

            this.usingTime = null;

            this.threshold = null;
    }
}