package com.hrs.model.entity;

import java.util.Date;

/**   
* Copyright: Copyright (c) 2026 chinasofti
* 
* @ClassName: User.java
* @Description: 用户实体类
*
* @version: v1.0.0
* @author: 赵恒
* @date: 2026年4月13日 上午10:00:10 
*
* Modification History:
* Date         Author          Version            Description
*---------------------------------------------------------*
* 2026年4月13日     赵恒           v1.0.0               新建文件
*/
public class User {
    
    // 数据库字段对应
    private Long id;              // 主键ID
    private String userName;      // 用户名
    private String password;      // 密码
    private String realName;      // 真实姓名
    private String phone;         // 手机号
    private String idCard;        // 身份证号
    private String roleType;      // 角色类型：0-租客 1-房东 2-管理员
    private String status;        // 账号状态：0-未认证 1-已认证 2-禁用
    private String createBy;      // 创建人
    private Date createTime;      // 创建时间
    private String updateBy;      // 更新人
    private Date updateTime;      // 更新时间
    /**
     * 
    * @Function: User
    * @Description: 无参构造方法
    *
    * @param: 无
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:46:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日    赵恒           			v1.0.0                             新建方法
     */    
    public User() {
    }
    /**
     * 
    * @Function: User
    * @Description: 全参构造方法
    *
    * @param: id 主键ID, userName 用户名, password 密码, realName 真实姓名, phone 手机号, idCard 身份证号, roleType 角色类型, status 账号状态, createBy 创建人, createTime 创建时间, updateBy 更新人, updateTime 更新时间
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:47:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public User(Long id, String userName, String password, String realName, 
                String phone, String idCard, String roleType, String status,
                String createBy, Date createTime, String updateBy, Date updateTime) {
        this.id = id;
        this.userName = userName;
        this.password = password;
        this.realName = realName;
        this.phone = phone;
        this.idCard = idCard;
        this.roleType = roleType;
        this.status = status;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
    }
    /**
     * 
    * @Function: getId
    * @Description: 获取主键ID
    *
    * @param: 无
    * @return：Long 主键ID
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:48:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日    赵恒         			v1.0.0                             新建方法
     */    
    public Long getId() {
        return id;
    }
    /**
     * 
    * @Function: setId
    * @Description: 设置主键ID
    *
    * @param: id 主键ID
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:48:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒          			v1.0.0                             新建方法
     */    
    public void setId(Long id) {
        this.id = id;
    }
    /**
     * 
    * @Function: getUserName
    * @Description: 获取用户名
    *
    * @param: 无
    * @return：String 用户名
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:48:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */   
    public String getUserName() {
        return userName;
    }
    /**
     * 
    * @Function: setUserName
    * @Description: 设置用户名
    *
    * @param: userName 用户名
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:48:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setUserName(String userName) {
        this.userName = userName;
    }
    /**
     * 
    * @Function: getPassword
    * @Description: 获取密码
    *
    * @param: 无
    * @return：String 密码
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:49:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getPassword() {
        return password;
    }
    /**
     * 
    * @Function: setPassword
    * @Description: 设置密码
    *
    * @param: password 密码
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:49:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setPassword(String password) {
        this.password = password;
    }
    /**
     * 
    * @Function: getRealName
    * @Description: 获取真实姓名
    *
    * @param: 无
    * @return：String 真实姓名
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒 
    * @date: 2025年4月13日 下午2:49:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒            			v1.0.0                             新建方法
     */    
    public String getRealName() {
        return realName;
    }
    /**
     * 
    * @Function: setRealName
    * @Description: 设置真实姓名
    *
    * @param: realName 真实姓名
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:49:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setRealName(String realName) {
        this.realName = realName;
    }
    /**
     * 
    * @Function: getPhone
    * @Description: 获取手机号
    *
    * @param: 无
    * @return：String 手机号
    * @throws：无
    *
    * @version: v1.0.0
    * @author:  赵恒
    * @date: 2025年4月13日 下午2:50:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日      赵恒           			v1.0.0                             新建方法
     */    
    public String getPhone() {
        return phone;
    }
    /**
     * 
    * @Function: setPhone
    * @Description: 设置手机号
    *
    * @param: phone 手机号
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author:  赵恒
    * @date: 2025年4月13日 下午2:50:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日      赵恒           			v1.0.0                             新建方法
     */   
    public void setPhone(String phone) {
        this.phone = phone;
    }
    /**
     * 
    * @Function: getIdCard
    * @Description: 获取身份证号
    *
    * @param: 无
    * @return：String 身份证号
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:50:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getIdCard() {
        return idCard;
    }
    /**
     * 
    * @Function: setIdCard
    * @Description: 设置身份证号
    *
    * @param: idCard 身份证号
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:50:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    /**
     * 
    * @Function: getRoleType
    * @Description: 获取角色类型
    *
    * @param: 无
    * @return：String 角色类型（0-租客 1-房东 2-管理员）
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:51:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getRoleType() {
        return roleType;
    }
    /**
     * 
    * @Function: setRoleType
    * @Description: 设置角色类型
    *
    * @param: roleType 角色类型（0-租客 1-房东 2-管理员）
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:51:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setRoleType(String roleType) {
        this.roleType = roleType;
    }
    /**
     * 
    * @Function: getStatus
    * @Description: 获取账号状态
    *
    * @param: 无
    * @return：String 账号状态（0-未认证 1-已认证 2-禁用）
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:51:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getStatus() {
        return status;
    }
    /**
     * 
    * @Function: setStatus
    * @Description: 设置账号状态
    *
    * @param: status 账号状态（0-未认证 1-已认证 2-禁用）
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:51:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setStatus(String status) {
        this.status = status;
    }
    /**
     * 
    * @Function: getCreateBy
    * @Description: 获取创建人
    *
    * @param: 无
    * @return：String 创建人
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:52:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getCreateBy() {
        return createBy;
    }
    /**
     * 
    * @Function: setCreateBy
    * @Description: 设置创建人
    *
    * @param: createBy 创建人
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:52:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }
    /**
     * 
    * @Function: getCreateTime
    * @Description: 获取创建时间
    *
    * @param: 无
    * @return：Date 创建时间
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:52:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Date getCreateTime() {
        return createTime;
    }
    /**
     * 
    * @Function: setCreateTime
    * @Description: 设置创建时间
    *
    * @param: createTime 创建时间
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:52:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    /**
     * 
    * @Function: getUpdateBy
    * @Description: 获取更新人
    *
    * @param: 无
    * @return：String 更新人
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:53:05 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getUpdateBy() {
        return updateBy;
    }
    /**
     * 
    * @Function: setUpdateBy
    * @Description: 设置更新人
    *
    * @param: updateBy 更新人
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:53:20 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }
    /**
     * 
    * @Function: getUpdateTime
    * @Description: 获取更新时间
    *
    * @param: 无
    * @return：Date 更新时间
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:53:35 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */  
    public Date getUpdateTime() {
        return updateTime;
    }
    /**
     * 
    * @Function: setUpdateTime
    * @Description: 设置更新时间
    *
    * @param: updateTime 更新时间
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:53:50 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    /**
     * 
    * @Function: isTenant
    * @Description: 判断是否为租客
    *
    * @param: 无
    * @return：boolean 是否为租客
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:54:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public boolean isTenant() {
        return "0".equals(this.roleType);
    }
    /**
     * 
    * @Function: isLandlord
    * @Description: 判断是否为房东
    *
    * @param: 无
    * @return：boolean 是否为房东
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:54:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public boolean isLandlord() {
        return "1".equals(this.roleType);
    }
    /**
     * 
    * @Function: isAdmin
    * @Description: 判断是否为管理员
    *
    * @param: 无
    * @return：boolean 是否为管理员
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:54:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    

    public boolean isAdmin() {
        return "2".equals(this.roleType);
    }
    /**
     * 
    * @Function: isVerified
    * @Description: 判断账号是否已认证
    *
    * @param: 无
    * @return：boolean 是否已认证
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:55:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public boolean isVerified() {
        return "1".equals(this.status);
    }
    /**
     * 
    * @Function: toString
    * @Description: 重写toString方法
    *
    * @param: 无
    * @return：String 对象字符串表示
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午2:55:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", realName='" + realName + '\'' +
                ", phone='" + phone + '\'' +
                ", roleType='" + roleType + '\'' +
                ", status='" + status + '\'' +
                '}';
    }
}