using System.Collections.Generic;
using Valg.EVA.Skanning.Contracts.CommonEnums;
using Valg.EVA.Skanning.Entity.ReadModel;

namespace Valg.EVA.Skanning.Repositories.Box
{
    public interface IBoxRepository
    {
        IList<BoxWithAggregatedToVerifyStatus> GetBoxesWithAggregatedToVerifyStatus(string contestId, string areaContextFilter, string electionEventId);
        IList<BoxWithAggregatedPartiallyOrCompletelyVerifiedStatus> GetBoxesWithAggregatedPartiallyOrCompletelyVerifiedStatus(bool ignoreCreatedBy, string createdBy, string contestId, string areaContextFilter, string electionEventId);
        int[] GetBallotPapersVerifiedByUserAndInBox(int boxId, string verifiedBy);
        BoxCountingState GetBoxCountingStateByBallotPaperId(int ballotPaperId);
        IList<LockedBallotPaper> GetLockedBallotPapersInBoxCounting(int boxCountingId);
    }
}
