
package de.ivu.elect.exchange.entschaedigung.csv;

import static java.util.Arrays.asList;
import static java.util.stream.Collectors.toMap;

import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import de.ivu.elect.business.entschaedigung.entity.AuszahlungCalculated;
import de.ivu.elect.business.entschaedigung.entity.Entschaedigung;
import de.ivu.elect.business.person.entity.Personendaten;

public class DefaultAuszahlungGesamtentschaedigungPerPersonendatenCsvExportMapper extends AbstractDefaultAuszahlungEntschaedigungPerPersonendatenCsvExportMapper {

  public static final String FORMAT_NAME = "file.format.auszahlung.gesamtentschaedigung.per.personendaten.export.default";

  public DefaultAuszahlungGesamtentschaedigungPerPersonendatenCsvExportMapper() {
    super();
  }

  @Override
  protected String getFileFormatName() {
    return FORMAT_NAME;
  }

  @Override
  protected Map<Personendaten, List<Entschaedigung>> collectEntschaedigungenPerPersonendaten(AuszahlungCalculated auszahlungCalculated) {
    return auszahlungCalculated.getGesamtentschaedigungPerPersonendaten().entrySet().stream().collect(toMap(Entry<Personendaten, Entschaedigung>::getKey, entry -> asList(entry.getValue())));
  }
}
