package cz.cvut.fel.omo.hw.functions.statistics;

import cz.cvut.fel.omo.hw.functions.data.model.*;
import cz.cvut.fel.omo.hw.functions.utils.CandidateUtils;
import cz.cvut.fel.omo.hw.functions.utils.CandidateUtilsImpl;
import cz.cvut.fel.omo.hw.functions.utils.CompletableFutureUtils;
import lombok.RequiredArgsConstructor;

import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;

public class AbroadStatisticsImpl implements AbroadStatistics {

    private final CompletableFuture<AbroadResults> abroadResults;
    private final CandidateUtils candidateUtils;

    public AbroadStatisticsImpl(CompletableFuture<AbroadResults> abroadResults, CompletableFuture<Candidates> candidates) {
        this.abroadResults = abroadResults;
        this.candidateUtils = new CandidateUtilsImpl(candidates);
    }

    @Override
    public String getNameOfCountryWithTheHighestNonValidVotesRatio() {
        // TODO Homework
        return null;
    }

    @Override
    public Map<String, List<String>> getCandidateVictoryCountryMap() {
        // TODO Homework
        return null;
    }

    @Override
    public Map<String, Integer> getContinentRegisteredVoterCountMap() {
        // TODO Homework
        return null;
    }

    @Override
    public String getNameOfCountryWithMostRegisteredVoters() {
        // TODO Homework
        return null;
    }

}
