package com.happy.service;

import com.alibaba.fastjson.JSONObject;
import com.happy.Model.House;
import com.happy.Model.HousePrice;
import com.happy.dto.HousePriceDto;
import com.happy.dto.IPage;
import com.happy.vo.HotelPriceDataVo;
import com.happy.vo.HousePriceDataVo;

import java.util.List;

public interface HousePriceService {
    /**
     * 批量改价 房态管理-房价管理
     */
    void modifyPriceBatch(List<String> dateList, List<HousePrice> priceList);

    /**
     * 改价 房态管理-房价管理
     */
    void modifyPrice(HousePriceDto housePriceDto);

    /**
     * 表格数据 房态管理-房价管理
     *
     * @param housePriceDto 查询参数
     * @param pageNumber    页码
     * @param pageSize      每页显示的条数
     */
    JSONObject queryPage(HousePriceDto housePriceDto, Integer pageNumber, Integer pageSize);

    public JSONObject queryDate();

    /**
     * 表格数据 房态管理-房价管理-改价记录
     *
     * @param housePriceDto 查询参数
     * @param pageNumber    页码
     * @param pageSize      每页显示的条数
     */
    IPage<HousePriceDto> queryPageHistory(HousePriceDto housePriceDto, Integer pageNumber, Integer pageSize);

    /**
     * 查询指定商家的所有status为1的房型
     *
     * @param managerId 商家id
     */
    List<House> queryHouseListByManagerId(String managerId);

    /**
     * 查询指定商家的所有status为1的房型
     *
     * @param managerId 商家id
     */
    JSONObject queryPageHouseListByManagerId(String managerId,Integer pageNumber, Integer pageSize);

    /**
     * 导出表格数据 房态管理-房价管理-改价记录
     */
    void exportHistory(HousePriceDto housePriceDto);

    /**
     * 价格日历数据获取
     * @param managerId 商家ID
     * @param startTime 入住时间
     * @param endTime 离店时间
     * @return
     */
    List<HousePriceDataVo> queryHousePriceDatas(Integer managerId, String startTime, String endTime);

    /**
     * 批量获取民宿的价格设置数据
     * @param managerIds
     * @param startTime
     * @return
     */
    List<HotelPriceDataVo> queryHotelPriceDatas(String managerIds, String startTime);

    /**
     * 根据房型查询每日价格
     * @param houseId
     * @param startTime
     * @param endTime
     * @return
     */
    List<HousePriceDataVo> queryPriceByHouseId(String houseId, String startTime, String endTime);

}
