package com.qmth.exam.reserve.service;

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.boot.core.collection.PageResult;
import com.qmth.exam.reserve.bean.login.LoginUser;
import com.qmth.exam.reserve.bean.stdapply.SignInVO;
import com.qmth.exam.reserve.bean.stdapply.StudentApplyReq;
import com.qmth.exam.reserve.bean.stdapply.StudentApplyVO;
import com.qmth.exam.reserve.entity.StudentApplyEntity;

public interface StudentApplyService extends IService<StudentApplyEntity> {

    PageResult<StudentApplyVO> page(StudentApplyReq req);

    void cancel(LoginUser user, Long id);

    List<Map<String, Object>> importPreExam(Long userId, Long teachingId, Integer level, InputStream inputStream);

    void autoAssign(Long taskId, Long userId);

    void autoLayout(Long teachingId);

    File downloadSignIn(Long teachingId, Long agentId, Long examDate);

    int countApplyFinishForExamSiteAndTimePeriod(Long examSiteId, Long timePeriodId);

    List<SignInVO> listSignInDate(Long taskId);

}
