package de.ivu.elect.sitzberechnung.konflikt;

public interface ErgebnisKonflikt {

  long getPosition();

  ErgebnisKonfliktArt getErgebnisKonfliktArt();

  ErgebnisKonfliktStatus getErgebnisKonfliktStatus();

  default boolean isGleicherKonflikt(ErgebnisKonflikt other) {
    return this.getErgebnisKonfliktArt().equals(other.getErgebnisKonfliktArt()) && isFachlichGleich(other);
  }

  boolean isFachlichGleich(ErgebnisKonflikt other);

  default boolean isGeloest() {
    return getErgebnisKonfliktStatus().isGeloest();
  }

  String toJson();

}
