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

import java.util.List;

import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;

public interface ExamSubjectService {

    ExamSubject save(ExamSubject subject);

    ExamSubject find(int examId, String code);

    List<ExamSubject> list(int examId);

    void delete(ExamSubject markSubject);

    long count(int examId);

    ExamSubjectSearchQuery findByQuery(ExamSubjectSearchQuery query);

    long countByQuery(ExamSubjectSearchQuery query);

    void deleteByExamId(int examId);

    List<ExamSubject> list(int examId, int uploadCountGt);
    
    List<ExamSubject> listSubjectiveScore(int examId, double subjectiveScoreGt);

    List<String> listLevel(int examId);

    List<String> listCategory(int examId);

    void updateUploadCount(Integer examId, String subjectCode, int count);

    void updateTotalScore(int examId);

    void updateScore(int examId, String code, boolean objective, double score);

}
