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

import java.time.temporal.ChronoUnit;
import java.util.Date;

import de.ivu.elect.business.mandant.entity.EntityMitMandant;
import de.ivu.elect.jee.faces.Messages;

/**
 *  on 30.01.2017.
 */
public abstract class AbstractStatistikLauf implements StatistikLaufBase, EntityMitMandant {

  public long getTageBisZurWahl() {
    return ChronoUnit.DAYS.between(new Date(getZeitpunktDesLaufs().getTime()).toInstant(), new Date(getWahltermin().getWahldatum().getTime()).toInstant());
  }

  public String getTageBisZurWahlLokalized(Messages messages) {
    long tageBisZurWahl = getTageBisZurWahl();
    String msgKey;
    if (tageBisZurWahl == 0) {
      msgKey = "statistik.lauf.wahltag";
    } else if (tageBisZurWahl < 0) {
      msgKey = "statistik.lauf.tage.nach.der.wahl";
    } else {
      msgKey = "statistik.lauf.tage.bis.zur.wahl";
    }
    return messages.getMessageForMessageKey(msgKey, Math.abs(tageBisZurWahl));
  }

  @Override
  public EntityMitMandant getParent() {
    return getWahltermin();
  }
}
