/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.estate.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springblade.core.mp.base.BaseEntity;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 申请用户表---房屋成员实体类
 *
 * @author BladeX
 * @since 2021-04-23
 */
@Data
@TableName("app_apply_user")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ApplyUser对象", description = "申请用户表---房屋成员")
public class ApplyUser extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 住户id--修改时有值
	*/
		@ApiModelProperty(value = "住户id--修改时有值")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long userId;
	/**
	* 申请的会员id
	*/
		@ApiModelProperty(value = "申请的会员id")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long memberId;
	/**
	* 住户名字
	*/
		@ApiModelProperty(value = "住户名字")
		private String name;
	/**
	* 所属房间id
	*/
		@ApiModelProperty(value = "所属房间id")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long roomId;
	/**
	* 所属房间名称
	*/
		@ApiModelProperty(value = "所属房间名称")
		private String roomName;
	/**
	* 申请记录审核状态：-1：未上传，0-待审核 1-审核通过 2-审核不通过
	*/
		@ApiModelProperty(value = "申请记录审核状态：-1：未上传，0-待审核 1-审核通过 2-审核不通过")
		private Integer auditStatus;
	/**
	* i_check_state=2(审核不通过)时必填
	*/
		@ApiModelProperty(value = "i_check_state=2(审核不通过)时必填")
		private String checkOpinion;
	/**
	* 审核时间
	*/
		@ApiModelProperty(value = "审核时间")
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
		private Date checkDate;
	/**
	* 住户类型 0-业主 1-成员 2-租户
	*/
		@ApiModelProperty(value = "住户类型 0-业主 1-成员 2-租户")
		private Integer type;
	/**
	* 国籍，0 中国大陆 1 中国香港/澳门 2 中国台湾 3海外
	*/
		@ApiModelProperty(value = "国籍，0 中国大陆 1 中国香港/澳门 2 中国台湾 3海外")
		private Integer nationality;
	/**
	* 居民身份证
	*/
		@ApiModelProperty(value = "居民身份证")
		private String idCard;
	/**
	* 护照照片url（没有域名，nationality = 3时,国籍为海外）
	*/
		@ApiModelProperty(value = "护照照片url（没有域名，nationality = 3时,国籍为海外）")
		private String passportImgUri;
	/**
	* 入境证明url（没有域名，nationality = 3时,国籍为海外）
	*/
		@ApiModelProperty(value = "入境证明url（没有域名，nationality = 3时,国籍为海外）")
		private String entryImgUri;
	/**
	* 联系电话
	*/
		@ApiModelProperty(value = "联系电话")
		private String phone;
	/**
	* 性别  0-未定义  1-男 2-女
	*/
		@ApiModelProperty(value = "性别  0-未定义  1-男 2-女")
		private Integer sex;
	/**
	* 所属单元id
	*/
		@ApiModelProperty(value = "所属单元id")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long unitId;
	/**
	* 单元名称
	*/
		@ApiModelProperty(value = "单元名称")
		private String unitName;
	/**
	* 楼栋id
	*/
		@ApiModelProperty(value = "楼栋id")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long buildingId;
	/**
	* 楼栋名称
	*/
		@ApiModelProperty(value = "楼栋名称")
		private String buildingName;
	/**
	* 所属小区id
	*/
		@ApiModelProperty(value = "所属小区id")
		@JsonSerialize(using = ToStringSerializer.class)
		private Long residentialId;
	/**
	* 小区名称
	*/
		@ApiModelProperty(value = "小区名称")
		private String residentialName;
	/**
	* 住户来源创建类型，0-小程序添加 1-后台添加  2-后台导入 3-app添加
	*/
		@ApiModelProperty(value = "住户来源创建类型，0-小程序添加 1-后台添加  2-后台导入 3-app添加")
		private Integer createType;
	/**
	* 人脸图片uri
	*/
		@ApiModelProperty(value = "人脸图片uri")
		private String faceUrl;

	/**
	 * 人脸图片md5
	 */
	@ApiModelProperty(value = "人脸图片md5")
	private String imageMd5;

	/**
	* 申请的记录类型 0--认证类型 1--新增类型 2--编辑类型(通过user编辑生成的) 3--编辑类型(通过applyUser编辑生成)
	*/
		@ApiModelProperty(value = "申请的记录类型 0--认证房屋 1--添加家人")
		private Integer recordType;
	/**
	* 旧照片
	*/
		@ApiModelProperty(value = "旧照片")
		private String oldFaceUrl;
	/**
	* 审核人类型：1-业主，2-后台
	*/
		@ApiModelProperty(value = "审核人类型：1-业主，2-后台")
		private Integer operatorType;
	/**
	* 审核人姓名
	*/
		@ApiModelProperty(value = "审核人姓名")
		private String operatorName;

	/**
	 * 审核人ID
	 */
	@ApiModelProperty(value = "审核人ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long operatorId;

	@ApiModelProperty(value = "社区ID")
	private Long agencyId;


}
