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

import de.ivu.elect.business.ergebnis.entity.Sitze;

/**
 * ELECT-16209
 */
public class SitzeKey {

  private final long gruppeId;

  private final long gebietId;

  public SitzeKey(Sitze sitze) {
    this.gruppeId = sitze.getGruppe().getId();
    this.gebietId = sitze.getGebiet().getId();
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    var sitzeKey = (SitzeKey) o;

    if (gruppeId != sitzeKey.gruppeId) return false;
    return gebietId == sitzeKey.gebietId;
  }

  @Override
  public int hashCode() {
    var result = (int) (gruppeId ^ (gruppeId >>> 32));
    result = 31 * result + (int) (gebietId ^ (gebietId >>> 32));
    return result;
  }
}
