
package de.ivu.elect.business.wahl.boundary;

import java.util.Optional;

import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiGebietsart;
import de.ivu.elect.business.wahl.entity.NlWahlart;

@Specializes
public class NlWasUmgangAWerteKonfiguration extends WasUmgangAWerteKonfiguration {

  protected static final long serialVersionUID = 1L;

  public NlWasUmgangAWerteKonfiguration() {
    super();
  }

  @Override
  public boolean isWahlberechtigteGesamtBeiGebietsartRelevant(Gebiet gebiet) {
    boolean result = super.isWahlberechtigteGesamtBeiGebietsartRelevant(gebiet);

    if (result && gebiet.isBriefwahlgebiet()) {
      return NlWahlart.isBriefwahlGemeindeUnterstuetzt(gebiet); // ELECT-16524
    }

    return result;
  }

  @Override
  public boolean isWahlberechtigteGesamtBeiGebietsartRelevant(Optional<StimmeingabePlausiGebietsart> gebietsart) {
    return super.isWahlberechtigteGesamtBeiGebietsartRelevant(gebietsart) || isBriefwahlbezirk(gebietsart);
  }
}
