
package de.ivu.elect.business.entschaedigung.control;

import java.util.HashMap;
import java.util.Map;

import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus;
import de.ivu.elect.jee.protokollierung.AttributTyp;
import de.ivu.elect.jee.protokollierung.VorherNachherWert;

public class AuszahlungProtokollierungEntschaedigungStatus extends AbstractAuszahlungProtokollierung {

  protected static final String PROTOKOLL_ATTRIBUTE_MSG_KEY = PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX + "ENTSCHAEDIGUNG.STATUS";

  private AuszahlungProtokollierungEntschaedigungStatus() {
    super();
  }

  // ELECTMUC-2909
  public static void protokolliere(Auszahlung auszahlung, EntschaedigungStatus to) {
    Map<String, VorherNachherWert> vorherNachherWertPerAttribute = new HashMap<>();
    vorherNachherWertPerAttribute.put(PROTOKOLL_ATTRIBUTE_MSG_KEY, new VorherNachherWert(AttributTyp.ENUM, null, fixNullToDefault(to)));

    addProtokollEintrag(auszahlung, vorherNachherWertPerAttribute);
  }

  private static EntschaedigungStatus fixNullToDefault(EntschaedigungStatus entschaedigungStatus) {
    if (entschaedigungStatus == null) {
      return EntschaedigungStatus.UNBESTIMMT;
    }

    return entschaedigungStatus;
  }
}
