package cn.iocoder.yudao.module.system.service.biz;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.excel.core.util.ExportData;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.*;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.ScheduleShiftExcelVO;
import cn.iocoder.yudao.module.system.dal.dataobject.biz.NurseScheduleDO;
import cn.iocoder.yudao.module.system.dal.dataobject.biz.ScheduleShiftDO;

import javax.validation.Valid;
import java.util.List;

/**
 * @Author: jinyd
 * @CreateTime: 2024/8/29  10:08
 * @Description:
 * @Version: 4.0
 */


public interface ScheduleShiftService {

    /**
     * 创建用户班次排班
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createScheduleShift(@Valid ScheduleShiftSaveReqVO createReqVO);

    /**
     * 更新用户班次排班
     *
     * @param updateReqVO 更新信息
     */
//    void updateScheduleShift(@Valid ScheduleShiftSaveDetailReqVO updateReqVO);

    /**
     * 删除用户班次排班
     *
     * @param id 编号
     */
    void deleteScheduleShift(Long id);

    /**
     * 获得用户班次排班
     *
     * @param id 编号
     * @return 用户班次排班
     */
    ScheduleShiftDO getScheduleShift(Long id);

    /**
     * 获得用户班次排班分页
     *
     * @param pageReqVO 分页查询
     * @return 用户班次排班分页
     */
    PageResult<ScheduleShiftPageListRespVO> getScheduleShiftPage(ScheduleShiftPageReqVO pageReqVO);

    List<NurseScheduleDO> getNurseScheduleList(ScheduleShiftPageReqVO pageReqVO);

    Boolean syncNurseSchedule(ScheduleShiftSaveReqVO createReqVO);

    List<ScheduleShiftExcelVO> getScheduleShiftExcel(ScheduleShiftPageReqVO pageReqVO);

    List<ExportData> getExportData(ScheduleShiftPageReqVO pageReqVO);
}
