package cn.com.qmth.stmms.biz.mark.service;

import java.util.List;

import org.springframework.data.domain.Sort;

import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
import cn.com.qmth.stmms.biz.mark.model.TrialTag;
import cn.com.qmth.stmms.biz.mark.model.TrialTrack;
import cn.com.qmth.stmms.biz.mark.query.TrialLibrarySearchQuery;

public interface TrialService {

    TrialLibrary findById(Integer id);

    TrialLibrarySearchQuery findLibrary(TrialLibrarySearchQuery query);

    List<TrialLibrary> findUnMarkedLibrary(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
            int pageNumber, int pageSize);

    long countLibrary(Integer examId, String subjectCode, Integer groupNumber);

    long countByMarkerId(Integer markerId);

    List<TrialLibrary> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
            int pageNumber, int pageSize, Sort sort, Double markerScore);

    List<TrialTrack> findTrack(Integer libraryId);

    List<TrialTag> findTag(Integer libraryId);

    List<TrialTrack> findTrackByStudentId(Integer studentId);

    List<TrialTag> findTagByStudentId(Integer studentId);

    List<TrialLibrary> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
            String secretNumber, int pageNumber, int pageSize, Sort querySort);

    long countMarkedLibrary(Integer examId, String subjectCode, Integer groupNumber);

    void save(List<TrialLibrary> trialList);

}
