package org.dromara.system.service.reservat;


import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.AjaxResult;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.reservat.bo.XiaoyuanReservatBo;
import org.dromara.system.domain.reservat.vo.XiaoyuanReservatVo;
import java.util.Collection;
import java.util.List;


/**
 * 校园预约Service接口
 *
 * @author boman
 * @date 2023-09-12
 */
public interface IXiaoyuanReservatService {

    /**
     * 查询校园预约
     */
    XiaoyuanReservatVo queryById(Long reservatId);

    /**
     * 查询校园预约列表
     */
    TableDataInfo<XiaoyuanReservatVo> queryPageList(XiaoyuanReservatBo bo, PageQuery pageQuery);

    /**
     * 查询校园预约列表
     */
    List<XiaoyuanReservatVo> queryList(XiaoyuanReservatBo bo);

    /**
     * 新增校园预约
     */
    Boolean insertByBo(XiaoyuanReservatBo bo);

    /**
     * 修改校园预约
     */
    Boolean updateByBo(XiaoyuanReservatBo bo);

    /**
     * 校验并批量删除校园预约信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 根据教职工手机号查询可预约的时间
     */
    AjaxResult subscribe(XiaoyuanReservatBo bo);

    /**
     * 预约首页统计
     * @param bo
     * @return
     */
    AjaxResult indexStatistics(XiaoyuanReservatBo bo);

    /**
     * 校园预约核销
     *
     * @param reservatId
     */
    R<Void> cav(Long reservatId);

    Boolean shByBo(XiaoyuanReservatBo bo);
}
