
package de.ivu.elect.business.personenregister.entity;

import java.util.Date;
import java.util.EnumSet;
import java.util.Optional;

public enum MesoWahlenVersion implements PersonenregisterVersion {

  /**
   * https://partner.vois.org/webservice/mws43wahlen/apidocs/index.html
   */
  V_43("14.11.2021"),

  /**
   * https://www.hsh-berlin.com/modules.php?name=HSH_Webservices&modus=serviceDetail&wsid=7&cid=55
   *
   * @deprecated ELECT-13919
   * @see MesoWahlenVersion#V_43
   */
  @Deprecated
  V_43_AXIS(""),

  ;

  private Optional<Date> gueltigAb;

  MesoWahlenVersion(String gueltigAbDdMMyyyy) {
    this.gueltigAb = Optional.ofNullable(PersonenregisterVersion.parseDate(gueltigAbDdMMyyyy));
  }

  @Override
  public Optional<Date> getGueltigAb() {
    return gueltigAb;
  }

  public static MesoWahlenVersion getDefault() {
    return PersonenregisterVersion.getValueGueltigOrDefault(EnumSet.allOf(MesoWahlenVersion.class), MesoWahlenVersion.V_43);
  }
}
