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

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
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.tenant.mp.TenantEntity;

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

/**
 * <p>
 * 人员登记配置
 * </p>
 *
 * @author miaoqs
 * @since 2024-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("pl_door_user_point_set")
@ApiModel(value="PlDoorUserPointSet对象", description="人员登记配置")
public class PlDoorUserPointSet extends TenantEntity {

    /**
     * 人员id
     */
    @ApiModelProperty(name = "userId", value = "人员id")
    private Long userId;
    /**
     * 人员姓名
     */
    @NotNull(message = "人员姓名不能为空")
    @ApiModelProperty(name = "userName", value = "人员姓名")
    private String userName;
    /**
     * 联系电话
     */
    @NotNull(message = "联系电话不能为空")
    @ApiModelProperty(name = "telephone", value = "联系电话")
    private String telephone;
    /**
     * 人员类型 1:住户;2:其他;
     */
    @ApiModelProperty(name = "userType", value = "人员类型 1:住户人员;2:工作人员;3:临时人员;")
    private String userType;
    /**
     * 证件类型 1:居民身份证;2:临时居民身份证;3:户口本;4:中国人民解放军证;5:居住证;6:机动车驾驶证;7:护照;8:港澳通行证;
     */
    @ApiModelProperty(name = "certificateType", value = "证件类型 1:居民身份证;2:临时居民身份证;3:户口本;4:中国人民解放军证;5:居住证;6:机动车驾驶证;7:护照;8:港澳通行证;")
    private String certificateType;
    /**
     * 性别 0:女;1:男
     */
    @ApiModelProperty(name = "gender", value = "性别 0:女;1:男")
    private String gender;
    /**
     * 证件号码
     */
    @ApiModelProperty(name = "certificateNumber", value = "证件号码")
    private String certificateNumber;
    /**
     * 人脸信息
     */
    @ApiModelProperty(name = "userFaceUrl", value = "人脸信息")
    private String userFaceUrl;
    /**
     * 有效开始时间
     */
    @ApiModelProperty(name = "validStartTime", value = "有效开始时间")
    private Date validStartTime;
    /**
     * 有效结束时间
     */
    @ApiModelProperty(name = "validEndTime", value = "有效结束时间")
    private Date validEndTime;
    /**
     * 权限状态 0:未生效;1:正常;2:已过期;
     */
    @ApiModelProperty(name = "permissionState", value = "权限状态 0:未生效;1:正常;2:已过期;")
    private String permissionState;
    /**
     * 房号
     */
    @ApiModelProperty(name = "roomNumberId", value = "房号")
    @TableField(value = "room_number_id", updateStrategy= FieldStrategy.IGNORED)
    private Long roomNumberId;
    /**
     * 楼层
     */
    @ApiModelProperty(name = "floorId", value = "楼层")
    @TableField(value = "floor_id", updateStrategy= FieldStrategy.IGNORED)
    private Long floorId;
    /**
     * 楼栋
     */
    @ApiModelProperty(name = "buildingId", value = "楼栋")
    @TableField(value = "building_id", updateStrategy= FieldStrategy.IGNORED)
    private Long buildingId;
    /**
     * 单元
     */
    @ApiModelProperty(name = "elementId", value = "单元")
    @TableField(value = "element_id", updateStrategy= FieldStrategy.IGNORED)
    private Long elementId;
    /**
     * 项目
     */
    @NotNull(message = "项目不能为空")
    @ApiModelProperty(name = "parkId", value = "项目")
    private Long parkId;

    /**
     * 下发状态 0:未下发;1:已下发;2:下发失败;
     */
    @ApiModelProperty(name = "sendState", value = "下发状态 0:未下发;1:已下发;2:下发失败;")
    private String sendState;
    /**
     * 下发失败原因
     */
    @ApiModelProperty(name = "sendFailMsg", value = "下发失败原因")
    private String sendFailMsg;
    /**
     * 删除失败原因
     */
    @ApiModelProperty(name = "deleteFailMsg", value = "删除失败原因")
    private String deleteFailMsg;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;



}
