package eu.dnetlib.api.functionality;

import java.util.List;

import eu.dnetlib.api.DriverService;
import eu.dnetlib.domain.functionality.validator.JobForValidation;
import eu.dnetlib.domain.functionality.validator.RuleSet;
import eu.dnetlib.domain.functionality.validator.StoredJob;

public interface ValidatorService extends DriverService {
	
	StoredJob getStoredJob(int jobId, String groupBy) throws ValidatorServiceException;

	List<StoredJob> getStoredJobs(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo) throws ValidatorServiceException;

	int getStoredJobsTotalNumber(String userMail, String jobType) throws ValidatorServiceException;

	List<StoredJob> getStoredJobsNew(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo, String jobStatus) throws ValidatorServiceException;

	int getStoredJobsTotalNumberNew(String userMail, String jobType, String jobStatus) throws ValidatorServiceException;

	List<RuleSet> getRuleSets() throws ValidatorServiceException;

	void submitValidationJob(JobForValidation job) throws ValidatorServiceException;
}
