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

import java.util.LinkedHashMap;
import java.util.Map;

import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.datei.entity.Datei;
import de.ivu.elect.business.datei.entity.DateiExport;
import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.jee.protokollierung.AttributTyp;
import de.ivu.elect.jee.protokollierung.VorherNachherWert;

public class AuszahlungProtokollierungDateiExport extends AbstractAuszahlungProtokollierung {

  protected static final String PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX = AbstractAuszahlungProtokollierung.PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX + "DATEI_EXPORT.";

  private AuszahlungProtokollierungDateiExport() {
    super();
  }

  // ELECTMUC-2909
  public static void protokolliere(Auszahlung auszahlung, DateiExport dateiExport, Benutzer benutzer) {
    Map<String, VorherNachherWert> vorherNachherWertPerAttribute = new LinkedHashMap<>();

    Datei datei = dateiExport.getDatei();

    vorherNachherWertPerAttribute.put(PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX + "DATEI.ORIGINAL_DATEINAME", new VorherNachherWert(AttributTyp.STRING, null, datei.getOriginalDateiname()));
    vorherNachherWertPerAttribute.put(PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX + "DATEI.ERSTELLUNGSZEITPUNKT", new VorherNachherWert(AttributTyp.TIMESTAMP, null, datei.getErstellungszeitpunkt()));

    if (benutzer == null) {
      addProtokollEintrag(auszahlung, vorherNachherWertPerAttribute);
    } else {
      addProtokollEintrag(benutzer, auszahlung, vorherNachherWertPerAttribute);
    }
  }
}
