
package de.ivu.elect.dokumente.veranstaltung;

import java.util.ArrayList;
import java.util.List;

import de.ivu.document.generator.template.annotations.Document;
import de.ivu.document.generator.template.annotations.DocumentRepeat;
import de.ivu.elect.business.dokumente.entity.DokumentVorlageArt;
import de.ivu.elect.business.veranstaltung.entity.Teilnahme;
import de.ivu.elect.business.veranstaltung.entity.Veranstaltung;
import de.ivu.elect.dokumente.CoreElectContext;
import de.ivu.elect.dokumente.kandidatur.KandidaturCoreDaten;

@Document(DokumentVorlageArt.VERANSTALTUNG_DOKUMENT_PREFIX + "-wus-was")
public class CoreVeranstaltungDocument extends VeranstaltungOhneTeilnehmerDocument {

  private static final long serialVersionUID = 1L;

  @DocumentRepeat(value = "Teilnahmen", elementClass = CoreTeilnahmeDokument.class, itemName = "teilnahmeItem")
  public final List<CoreTeilnahmeDokument> teilnahmen;

  public CoreVeranstaltungDocument(CoreElectContext coreElectContext, Veranstaltung veranstaltung, KandidaturCoreDaten kandidaturCoreDaten, List<Teilnahme> teilnahmeEntities) {
    super(coreElectContext, veranstaltung);

    this.teilnahmen = new ArrayList<>(teilnahmeEntities.size());

    Long laufendeNummer = 1L;

    for (Teilnahme teilnahmeEntity : teilnahmeEntities) {
      this.teilnahmen.add(new CoreTeilnahmeDokument(coreElectContext, kandidaturCoreDaten, teilnahmeEntity, laufendeNummer++));
    }
  }
}
