package org.dromara.domain.residentInfo;

import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 居住人员信息，存储居住人员的详细信息对象 resident_info
 *
 * @author boman
 * @date 2025-04-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("resident_info")
public class ResidentInfo extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private String userType;

    /**
     * 人员类型：1:业主 2:租户 3:其他
     */
    private String residentType;
    /**
     * 居住人员主键，唯一标识每条居住人员信息
     */
    @TableId(value = "resident_id")
    private Long residentId;

    /**
     * 关联房屋信息表的house_id，标识居住人员所属房屋
     */
    private Long houseId;

    /**
     * 关联sys_user表中user_id
     */
    private Long userId;

    /**
     * 居住人员的详细门牌号
     */
    private String detailedAddress;

    /**
     * 居住人员姓名
     */
    private String residentName;

    /**
     * 居住人员身份证号码，18位
     */
    private String residentIdCard;

    /**
     * 居住人员出生日期
     */
    private String residentBirthday;

    /**
     * 居住人员手机号
     */
    private String residentPhone;

    /**
     * 居住人员性别：1-男，2-女
     */
    private Long residentGender;

    /**
     * 居住人员与户主的关系，如父子、夫妻等
     */
    private String residentRelationship;

    /**
     * 是否是户主：Y-是，N-否
     */
    private String isHouseholder;

    /**
     * 是否是租户：Y-是，N-否
     */
    private String isTenant;

    /**
     * 居住人员工作单位
     */
    private String residentEmployer;

    /**
     * 特殊类型
     */
    private String specialType;

    /**
     * 爱好字典值多选
     */
    private String residentHobby;

    /**
     * 居住人员面貌，如党员、群众等
     */
    private String residentAppearance;

    /**
     * 身份证正面
     */
    private String idCardFront;

    /**
     * 身份证反面
     */
    private String idCardBack;

    /**
     * 身份证住址
     */
    private String idCardAddress;

    /**
     * 人脸地址
     */
    private String facePhoto;

    /**
     * 备注
     */
    private String remark;

    /**
     * 审核状态 1:未审核 2：审核通过 3：审核未通过
     */
    private String examine;
}
