package com.yuchen.saas.park.api.entity.elevator;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * <p>
 * 梯控人员登记表
 * </p>
 *
 * @author baichaojie
 * @since 2024-07-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("saas_park_elevator_person")
@ApiModel(value="SaasParkElevatorPerson对象", description="梯控人员登记表")
public class SaasParkElevatorPerson extends BaseEntity {

    /**
     * 项目id
     */
    @ApiModelProperty(name = "parkId", value = "项目id")
    private Long parkId;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    /**
     * org创建人
     */
    @ApiModelProperty(name = "createOrgUser", value = "org创建人")
    private Long createOrgUser;
    /**
     * org修改人
     */
    @ApiModelProperty(name = "updateOrgUser", value = "org修改人")
    private Long updateOrgUser;
    /**
     * 人员id
     */
    @ApiModelProperty(name = "userId", value = "人员id")
    private Long userId;
    /**
     * 人员姓名
     */
    @ApiModelProperty(name = "userName", value = "人员姓名")
    private String userName;
    /**
     * 联系电话
     */
    @ApiModelProperty(name = "telephone", value = "联系电话")
    private String telephone;
    /**
     * 人员类型 1:住户人员;2:工作人员;3:临时人员
     */
    @ApiModelProperty(name = "userType", value = "人员类型 1:住户人员;2:工作人员;3:临时人员")
    private Long userType;
    /**
     * 证件类型 1:居民身份证;2:临时居民身份证;3:户口本;4:中国人民解放军证;5:居住证;6:机动车驾驶证;7:护照;8:港澳通行证;
     */
    @ApiModelProperty(name = "certificateType", value = "证件类型 1:居民身份证;2:临时居民身份证;3:户口本;4:中国人民解放军证;5:居住证;6:机动车驾驶证;7:护照;8:港澳通行证;")
    private String certificateType;
    /**
     * 证件号码
     */
    @ApiModelProperty(name = "certificateNumber", value = "证件号码")
    private String certificateNumber;
    /**
     * 性别 0:女;1:男
     */
    @ApiModelProperty(name = "gender", value = "性别 2:女;1:男")
    private Integer gender;
    /**
     * 人脸信息
     */
    @ApiModelProperty(name = "userFaceUrl", value = "人脸信息")
    private String userFaceUrl;
    /**
     * 有效开始时间
     */
    @ApiModelProperty(name = "validStartTime", value = "有效开始时间")
    @NotNull(message = "有效时间必填")
    private Date validStartTime;
    /**
     * 有效结束时间
     */
    @ApiModelProperty(name = "validEndTime", value = "有效结束时间")
    @NotNull(message = "有效时间必填")
    private Date validEndTime;
    /**
     * 权限状态 0:未生效;1:正常;2:已过期;
     */
    @ApiModelProperty(name = "permissionState", value = "权限状态 0:未生效;1:正常;2:已过期;")
    private String permissionState;
    /**
     * 权限范围
     */
    @ApiModelProperty(name = "permissionDevs", value = "权限范围JSONStr,提供有权限设备的名称跟id")
    private String permissionDevs;
    /**
     * 房号
     */
    @ApiModelProperty(name = "roomNumberId", value = "房号")
    private Long roomNumberId;
    /**
     * 楼层
     */
    @ApiModelProperty(name = "floorId", value = "楼层")
    private Long floorId;
    /**
     * 楼栋
     */
    @ApiModelProperty(name = "buildingId", value = "楼栋")
    private Long buildingId;
    /**
     * 单元
     */
    @ApiModelProperty(name = "unitId", value = "单元")
    private Long unitId;
    /**
     * 下发状态 0:未下发;1:已下发;2:下发失败;3:部分成功,部分失败
     */
    @ApiModelProperty(name = "sendState", value = "下发状态 0:未下发;1:已下发;2:下发失败;3:部分成功,部分失败")
    private String sendState;
    /**
     * 下发失败原因
     */
    @ApiModelProperty(name = "sendFailMsg", value = "下发失败原因")
    private String sendFailMsg;
    /**
     * 主模块人员表id
     */
    @ApiModelProperty(name = "mianPersonId", value = "主模块人员表id")
    private Long mianPersonId;
    /**
     * 同步时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(name = "syncTime", value = "同步时间")
    private Date syncTime;
    /**
     * 同步状态
     */
    @ApiModelProperty(name = "syncStatus", value = "同步状态")
    private String syncStatus;
    /**
     * 同步结果信息
     */
    @ApiModelProperty(name = "syncResult", value = "同步结果信息")
    private String syncResult;
    /**
     * 关联梯控组
     */
    @ApiModelProperty(name = "relativeElevatorGroupJsonStr", value = "关联梯控组,这边存储JSON字符串")
    private String relativeElevatorGroupJsonStr;
    /**
     * 关联人员分组
     */
    @ApiModelProperty(name = "relativePersonGroupJsonStr", value = "关联人员分组,这边存储JSON字符串")
    private String relativePersonGroupJsonStr;
    /**
     * 关联楼层分组
     */
    @ApiModelProperty(name = "relativeFloorGroupJsonStr", value = "关联楼层分组,这边存储JSON字符串")
    private String relativeFloorGroupJsonStr;



}
