package com.jwipc.order.logic;

import com.jwipc.order.dto.AppointmentDayOffBaseDTO;
import com.jwipc.order.model.query.AppointmentDayOffQuery;
import com.jwipc.order.model.query.AppointmentPurchaseQuery;
import com.jwipc.page.PageView;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author wt
 * @version 1.0
 * @since 2024/3/6
 */
public interface AppointmentDayOffLogic {
    /**
     * 查询列表数据 不分页
     * @param query
     * @return
     */
    List<AppointmentDayOffBaseDTO> selectDataByQuery(AppointmentDayOffQuery query);

    /**
     * 查询列表数据
     * @param query
     * @return
     */
    PageView selectListByPage(AppointmentDayOffQuery query);

    /**
     * 根据系统配置项预约的范围 和 配置的法休配置表计算出顺延的时间范围
     *
     * @param date       开始时间
     * @param appointmentDate 用户可以预约的 系统配置项目
     * @param dtoList
     * @return 用户可以预约的时间范围
     */
    Integer getTimeRange(Date date, String appointmentDate, List<AppointmentDayOffBaseDTO> dtoList);

    /**
     * 查询数据根据id
     * @param id
     * @return
     */
    AppointmentDayOffBaseDTO selectById(String id);

    /**
     * 保存数据
     * @param dayOffBaseDTO
     */
    void createOrUpdate(AppointmentDayOffBaseDTO dayOffBaseDTO);

    /**
     * 删除
     * @param id
     */
    void deleteById(Long id);
}
