package com.hrs.dao;

import com.hrs.model.entity.Collection;
import java.util.List;

/**   
* Copyright: Copyright (c) 2026 chinasofti
* 
* @ClassName: CollectionDao.java
* @Description: 收藏数据层
*
* @version: v1.0.0
* @author: 赵恒
* @date: 2026年4月13日 上午9:30:25 
*
* Modification History:
* Date         Author          Version            Description
*---------------------------------------------------------*
* 2026年4月13日     赵恒           v1.0.0               新建文件
*/
public interface CollectionDao {
    /**
     * 
    * @Function: add
    * @Description: 添加收藏
    *
    * @param: collection 收藏对象
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:37:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean add(Collection collection);
    /**
     * 
    * @Function: isCollected
    * @Description: 判断是否已收藏
    *
    * @param: tenantId 租客ID, houseId 房源ID
    * @return：boolean 是否已收藏
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:37:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean isCollected(Long tenantId, Long houseId);
    /**
     * 
    * @Function: delete
    * @Description: 删除收藏（根据租客和房源）
    *
    * @param: tenantId 租客ID, houseId 房源ID
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:38:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean delete(Long tenantId, Long houseId);
    /**
     * 
    * @Function: deleteById
    * @Description: 删除收藏（根据ID）
    *
    * @param: id 收藏ID
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:38:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean deleteById(Long id);
    /**
     * 
    * @Function: findByTenantId
    * @Description: 根据租客ID查询收藏列表
    *
    * @param: tenantId 租客ID
    * @return：List<Collection> 收藏列表
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:38:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    List<Collection> findByTenantId(Long tenantId);
    /**
     * 
    * @Function: countByTenantId
    * @Description: 统计租客的收藏数量
    *
    * @param: tenantId 租客ID
    * @return：int 收藏数量
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:38:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    int countByTenantId(Long tenantId);
}
