
package de.ivu.elect.dokumente.ergebnis.p22;

import de.ivu.elect.business.wahl.control.AbstractNlExportArtefaktNachSystemExportstatusExportContext;
import de.ivu.elect.was.exchange.ergebnis.NlWasModelU16ExportMapper;

/**
 * Ist das Gegenstück zu Model P 22 bei Eerste Kamer.
 *
 * @see NlWasModelU16Eml520ExportMapper
 * @see NlWasModelU16Osv43CsvExportMapper
 * @see NlWasModelU16Osv56CsvExportMapper
 */
public class NlWasModelU16MainDocumentExportMapper extends AbstractNlWasModelU16DocumentExportMapper implements NlWasModelU16ExportMapper {

  public static final String FILE_FORMAT_NAME = "file.format.ergebnisdokument.export.modelu16.main";

  public NlWasModelU16MainDocumentExportMapper() {
    super();
  }

  @Override
  public String getFileFormatName() {
    return FILE_FORMAT_NAME;
  }

  @Override
  protected String getDokumentVorlageNameInfix() {
    return "Model U 16";
  }

  /*
   * https://support.elect-it.com/wiki/x/XoE8
   */

  @Override
  public boolean requiresWahlausschusssitzungAnschriftStrasseHausnummer(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return false;
  }

  @Override
  public boolean requiresWahlausschusssitzungAnschriftOrt(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return true; // ELECT-10433
  }

  @Override
  public boolean requiresWahlausschusssitzungAnschriftPlz(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return false;
  }

  @Override
  public boolean requiresWahlausschusssitzungBeginn(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return true;
  }

  @Override
  public boolean requiresWahlausschusssitzungEinwaende(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return false;
  }

  @Override
  public boolean requiresWahlausschusssitzungEinwaendeBemerkungen(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return false;
  }

  @Override
  public boolean requiresEinwohnerzahlVeroeffentlichungId(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return true; // ELECT-13551
  }

  @Override
  public boolean requiresEinwohnerzahlVeroeffentlichungDatum(AbstractNlExportArtefaktNachSystemExportstatusExportContext context) {
    return true; // ELECT-13551
  }
}
