package org.iatoki.judgels.uriel.services;
import org.iatoki.judgels.play.Page;
import org.iatoki.judgels.uriel.ContestProblem;
import org.iatoki.judgels.uriel.ContestProblemNotFoundException;
import org.iatoki.judgels.uriel.ContestProblemStatus;
import java.util.List;
import java.util.Map;
public interface ContestProblemService {
boolean isContestProblemInContestByProblemJidOrAlias(String contestJid, String contestProblemJid, String contestProblemAlias);
ContestProblem findContestProblemByContestProblemId(long contestProblemId) throws ContestProblemNotFoundException;
ContestProblem findContestProblemByContestJidAndContestProblemJid(String contestJid, String contestProblemJid);
List<ContestProblem> findOpenedContestProblemByContestJid(String contestJid);
Page<ContestProblem> pageContestProblemsByContestJid(String contestJid, long pageIndex, long pageSize, String orderBy, String orderDir, String filterString, String status);
Page<ContestProblem> pageUsedContestProblemsByContestJid(String contestJid, long pageIndex, long pageSize);
Map<String, String> findProblemJidToAliasMapByContestJid(String contestJid);
void createContestProblem(long contestId, String problemJid, String problemSecret, String alias, long submissionsLimit, ContestProblemStatus status);
void updateContestProblem(long contestProblemId, String alias, long submissionsLimit, ContestProblemStatus status);
}