package com.hrs.dao;

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

/**   
* Copyright: Copyright (c) 2026 chinasofti
* 
* @ClassName: OrderDao.java
* @Description: 订单数据层
*
* @version: v1.0.0
* @author: 赵恒
* @date: 2026年4月13日 上午9:31:25 
*
* Modification History:
* Date         Author          Version            Description
*---------------------------------------------------------*
* 2026年4月13日     赵恒           v1.0.0               新建文件
*/
public interface OrderDao {
    /**
     * 
    * @Function: add
    * @Description: 添加订单
    *
    * @param: order 订单对象
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:32:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean add(Order order);
    /**
     * 
    * @Function: findByTenantId
    * @Description: 根据租客ID查询订单
    *
    * @param: tenantId 租客ID
    * @return：List<Order> 订单列表
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:32:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    List<Order> findByTenantId(Long tenantId);
    /**
     * 
    * @Function: findByLandlordId
    * @Description: 根据房东ID查询订单
    *
    * @param: landlordId 房东ID
    * @return：List<Order> 订单列表
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:32:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    List<Order> findByLandlordId(Long landlordId);
    /**
     * 
    * @Function: findById
    * @Description: 根据ID查询订单
    *
    * @param: id 订单ID
    * @return：Order 订单对象，未找到返回null
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:32:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    Order findById(Long id);
    /**
     * 
    * @Function: findByOrderNo
    * @Description: 根据订单编号查询订单
    *
    * @param: orderNo 订单编号
    * @return：Order 订单对象，未找到返回null
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:33:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    Order findByOrderNo(String orderNo);
    /**
     * 
    * @Function: updateStatus
    * @Description: 更新订单状态
    *
    * @param: orderId 订单ID, status 状态
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:33:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean updateStatus(Long orderId, String status);
    /**
     * 
    * @Function: updatePayStatus
    * @Description: 更新支付状态
    *
    * @param: orderId 订单ID, payStatus 支付状态
    * @return：boolean 是否成功
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:33:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean updatePayStatus(Long orderId, String payStatus);
    /**
     * 
    * @Function: countByTenantId
    * @Description: 统计租客的订单数量
    *
    * @param: tenantId 租客ID
    * @return：int 订单数量
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:33:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */    
    int countByTenantId(Long tenantId);
    /**
     * 
    * @Function: countByLandlordId
    * @Description: 统计房东的订单数量
    *
    * @param: landlordId 房东ID
    * @return：int 订单数量
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:34:00 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    int countByLandlordId(Long landlordId);
    /**
     * 
    * @Function: existsByHouseId
    * @Description: 判断房源是否存在订单
    *
    * @param: houseId 房源ID
    * @return：boolean 是否存在订单
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:34:15 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    boolean existsByHouseId(Long houseId);
    /**
     * 
    * @Function: findAll
    * @Description: 查询所有订单
    *
    * @param: 无
    * @return：List<Order> 订单列表
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:34:30 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    List<Order> findAll();
    /**
     * 
    * @Function: countAll
    * @Description: 统计所有订单数量
    *
    * @param: 无
    * @return：int 订单总数
    * @throws：无
    *
    * @version: v1.0.0
    * @author: 赵恒
    * @date: 2025年4月13日 下午3:34:45 
    *
    * Modification History:
    * Date         Author          Version            Description
    *---------------------------------------------------------*
    * 2025年4月13日     赵恒           			v1.0.0                             新建方法
     */
    int countAll();
}
