package com.hrs.model.entity;

import java.util.Date;

/**   
* Copyright: Copyright (c) 2026 chinasofti
* 
* @ClassName: Reservation.java
* @Description: 预约看房实体类
*
* @version: v1.0.0
* @author: 赵恒
* @date: 2026年4月13日 上午9:59:56 
*
* Modification History:
* Date         Author          Version            Description
*---------------------------------------------------------*
* 2026年4月13日     赵恒           v1.0.0               新建文件
*/
public class Reservation {
    
    private Long id;            // 主键ID
    private Long tenantId;      // 租客ID
    private Long houseId;       // 房源ID
    private Long landlordId;    // 房东ID
    private Date reserveTime;   // 预约看房时间
    private String remark;      // 租客备注
    private String status;      // 预约状态：0-待确认；1-已确认；2-已取消；3-已完成
    private Date handleTime;    // 房东处理时间
    private String createBy;    // 创建人
    private Date createTime;    // 创建时间
    private String updateBy;    // 更新人
    private Date updateTime;    // 更新时间
    
    // 关联字段（不存数据库）
    private House house;        // 房源详情
    private User tenant;        // 租客信息
    private User landlord;      // 房东信息
    /**
     * 
    * @Function: Reservation
    * @Description: 无参构造方法
    *
    * @param: 无
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:11:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Reservation() {
    }
    /**
     * 
    * @Function: getId
    * @Description: 获取主键ID
    *
    * @param: 无
    * @return：Long 主键ID
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:11:45 
    *
    * 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日 下午3:12:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setId(Long id) {
        this.id = id;
    }
    /**
     * 
    * @Function: getTenantId
    * @Description: 获取租客ID
    *
    * @param: 无
    * @return：Long 租客ID
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:12:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Long getTenantId() {
        return tenantId;
    }
    /**
     * 
    * @Function: setTenantId
    * @Description: 设置租客ID
    *
    * @param: tenantId 租客ID
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:12:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    /**
     * 
    * @Function: getHouseId
    * @Description: 获取房源ID
    *
    * @param: 无
    * @return：Long 房源ID
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:12:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Long getHouseId() {
        return houseId;
    }
    /**
     * 
    * @Function: setHouseId
    * @Description: 设置房源ID
    *
    * @param: houseId 房源ID
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:13:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setHouseId(Long houseId) {
        this.houseId = houseId;
    }
    /**
     * 
    * @Function: getLandlordId
    * @Description: 获取房东ID
    *
    * @param: 无
    * @return：Long 房东ID
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:13:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Long getLandlordId() {
        return landlordId;
    }
    /**
     * 
    * @Function: setLandlordId
    * @Description: 设置房东ID
    *
    * @param: landlordId 房东ID
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:13:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setLandlordId(Long landlordId) {
        this.landlordId = landlordId;
    }
    /**
     * 
    * @Function: getReserveTime
    * @Description: 获取预约看房时间
    *
    * @param: 无
    * @return：Date 预约看房时间
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:13:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Date getReserveTime() {
        return reserveTime;
    }
    /**
     * 
    * @Function: setReserveTime
    * @Description: 设置预约看房时间
    *
    * @param: reserveTime 预约看房时间
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:14:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setReserveTime(Date reserveTime) {
        this.reserveTime = reserveTime;
    }
    /**
     * 
    * @Function: getRemark
    * @Description: 获取租客备注
    *
    * @param: 无
    * @return：String 租客备注
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:14:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public String getRemark() {
        return remark;
    }
    /**
     * 
    * @Function: setRemark
    * @Description: 设置租客备注
    *
    * @param: remark 租客备注
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:14:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setRemark(String remark) {
        this.remark = remark;
    }
    /**
     * 
    * @Function: getStatus
    * @Description: 获取预约状态
    *
    * @param: 无
    * @return：String 预约状态（0-待确认；1-已确认；2-已取消；3-已完成）
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:14:45 
    *
    * 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-已取消；3-已完成）
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:15:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setStatus(String status) {
        this.status = status;
    }
    /**
     * 
    * @Function: getStatusText
    * @Description: 获取预约状态文本
    *
    * @param: 无
    * @return：String 预约状态文本
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:15:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */ 
    public String getStatusText() {
        switch (status) {
            case "0": return "待确认";
            case "1": return "已确认";
            case "2": return "已取消";
            case "3": return "已完成";
            default: return "未知";
        }
    }
    /**
     * 
    * @Function: getHandleTime
    * @Description: 获取房东处理时间
    *
    * @param: 无
    * @return：Date 房东处理时间
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:15:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public Date getHandleTime() {
        return handleTime;
    }
    /**
     * 
    * @Function: setHandleTime
    * @Description: 设置房东处理时间
    *
    * @param: handleTime 房东处理时间
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:15:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setHandleTime(Date handleTime) {
        this.handleTime = handleTime;
    }
    /**
     * 
    * @Function: getCreateBy
    * @Description: 获取创建人
    *
    * @param: 无
    * @return：String 创建人
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:16:00 
    *
    * 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日 下午3:16:15 
    *
    * 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日 下午3:16:30 
    *
    * 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日 下午3:16:45 
    *
    * 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日 下午3:17:00 
    *
    * 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日 下午3:17:15 
    *
    * 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日 下午3:17:30 
    *
    * 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日 下午3:17:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    /**
     * 
    * @Function: getHouse
    * @Description: 获取房源详情
    *
    * @param: 无
    * @return：House 房源对象
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:18:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public House getHouse() {
        return house;
    }
    /**
     * 
    * @Function: setHouse
    * @Description: 设置房源详情
    *
    * @param: house 房源对象
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:18:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setHouse(House house) {
        this.house = house;
    }
    /**
     * 
    * @Function: getTenant
    * @Description: 获取租客信息
    *
    * @param: 无
    * @return：User 租客对象
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:18:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public User getTenant() {
        return tenant;
    }
    /**
     * 
    * @Function: setTenant
    * @Description: 设置租客信息
    *
    * @param: tenant 租客对象
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:18:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setTenant(User tenant) {
        this.tenant = tenant;
    }
    /**
     * 
    * @Function: getLandlord
    * @Description: 获取房东信息
    *
    * @param: 无
    * @return：User 房东对象
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:19:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public User getLandlord() {
        return landlord;
    }
    /**
     * 
    * @Function: setLandlord
    * @Description: 设置房东信息
    *
    * @param: landlord 房东对象
    * @return：无
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:19:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    public void setLandlord(User landlord) {
        this.landlord = landlord;
    }
    /**
     * 
    * @Function: toString
    * @Description: 重写toString方法
    *
    * @param: 无
    * @return：String 对象字符串表示
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:19:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒          			v1.0.0                             新建方法
     */ 
    @Override
    public String toString() {
        return "Reservation{" +
                "id=" + id +
                ", houseId=" + houseId +
                ", reserveTime=" + reserveTime +
                ", status='" + status + '\'' +
                '}';
    }
}