
package de.ivu.elect.was.exchange.ergebnis;

import static java.util.Arrays.asList;

import java.util.Collection;

import de.ivu.elect.business.ergebnis.boundary.NlWasModelIIBulkExporter;
import de.ivu.elect.business.security.Customer;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingabestatus;
import de.ivu.elect.business.wahl.entity.NlWahlCustomData;
import de.ivu.elect.business.wahl.entity.NlWahlart;
import de.ivu.elect.business.wahl.entity.Wahl;

/**
 * @deprecated ELECT-15233, Model II -> Model Na 31-2
 */
@Deprecated
public class NlWasModelIIExportMapperHelper {

  private NlWasModelIIExportMapperHelper() {
    super();
  }

  // https://support.elect-it.com/wiki/x/48g8
  public static boolean isAcceptWahlebene(Wahl wahl, Customer customer) {
    return NlWahlart.isWasPSB(wahl, customer);
  }

  // https://support.elect-it.com/wiki/x/48g8
  public static Collection<NlWahlart> collectWahlartenAccepted() {
    return asList( //
        NlWahlart.TWEEDE_KAMER, //
        NlWahlart.EUROPEES_PARLEMENT, //
        NlWahlart.PROVINCIALE_STATEN1, //
        NlWahlart.PROVINCIALE_STATEN2, //
        NlWahlart.GEMEENTERAAD, //
        NlWahlart.BESTUURSCOMMISSIE, // ELECT-13360
        NlWahlart.EILANDSRAAD, // ELECT-13360
        NlWahlart.WATERSCHAP // ELECT-13360
    );
  }

  public static boolean isAcceptWahlergebniserfassung(Wahl wahl, Customer customer) {
    return wahl.getCustomData(NlWahlCustomData.class).isZentraleErfassung(); // ELECT-9953, ist das Gegenstück zu Model Na 31-1 (ehemals Model N 11) bei ZENTRALER Erfassung...
  }

  public static Collection<Ergebniseingabestatus> collectErgebniseingabestatusAccepted() {
    return NlWasModelIIBulkExporter.EXPORT_ERGEBNISEINGABESTATUS;
  }
}
