package org.springblade.modules.martial.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.martial.excel.ScheduleExportExcel;
import org.springblade.modules.martial.excel.ScheduleExportExcel2;
import org.springblade.modules.martial.pojo.dto.MoveScheduleGroupDTO;
import org.springblade.modules.martial.pojo.dto.SaveScheduleDraftDTO;
import org.springblade.modules.martial.pojo.dto.ScheduleResultDTO;
import org.springblade.modules.martial.pojo.entity.MartialSchedule;

import java.util.List;

/**
 * Schedule Service
 */
public interface IMartialScheduleService extends IService<MartialSchedule> {

	List<ScheduleExportExcel> exportSchedule(Long competitionId);

	List<ScheduleExportExcel2> exportScheduleTemplate2(Long competitionId, Long venueId);

	ScheduleResultDTO getScheduleResult(Long competitionId);

	boolean saveDraftSchedule(SaveScheduleDraftDTO dto);

	boolean saveAndLockSchedule(Long competitionId);

	boolean moveScheduleGroup(MoveScheduleGroupDTO dto);

	org.springblade.modules.martial.pojo.vo.DispatchDataVO getDispatchData(Long competitionId, Long venueId, Integer timeSlotIndex);

	boolean adjustOrder(org.springblade.modules.martial.pojo.dto.AdjustOrderDTO dto);

	boolean saveDispatch(org.springblade.modules.martial.pojo.dto.SaveDispatchDTO dto);

	boolean updateParticipantCheckInStatus(Long participantId, String status);
}
