package no.valg.valgnatt.database.geografi;

import lombok.Getter;
import lombok.Setter;
import no.valg.valgnatt.database.hibernate.Stemmekrets;
import no.valg.valgnatt.database.hibernate.Valgdistrikt;

import java.util.Map;
import java.util.TreeMap;

public class Bydel extends Område {
    @Getter @Setter private String nr;
    @Getter @Setter private String navn;
    @Getter private String kommnr;
    @Getter private Map<String, Stemmekrets> stemmekretser = new TreeMap<>();
    @Getter @Setter private boolean sisteSammenlignbar;
    @Getter @Setter private boolean nestSisteSammenlignbar;

    public Bydel(String nr, String navn, String kommnr, boolean sisteSammenlignbar, boolean nestSisteSammenlignbar) {
        this.nr = nr;
        this.navn = navn;
        this.kommnr = kommnr;
        this.sisteSammenlignbar = sisteSammenlignbar;
        this.nestSisteSammenlignbar = nestSisteSammenlignbar;
    }

    @Override
    public Map<String, Kommune> getKommuner() {
        return null;
    }

    @Override
    public Valgdistrikt getValgdistrikt() {
        return null;
    }

    /**
     * Kan ikke leverer frammøteprosent for stemmesedler, fordi FHS ikke er kretsfordelt (eller bydelfordelt)
     */
    @Override
    public Float beregnFrammoteProsentIaar() {
        return null;
    }

    public void add(Stemmekrets stemmekrets) {
        stemmekretser.put(stemmekrets.getId().getKretsnr(), stemmekrets);
    }

    @Override
    public Område getOverordnetOmråde() {
        return getLand().getKommuner().get(kommnr);
    }

    @Override
    public Område[] getUnderordnedeRapportOmråder() {
        return stemmekretser.values().toArray(new Område[]{});
    }
}
