
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.BaseElectContext;

@Document(DokumentVorlageArt.VERANSTALTUNG_DOKUMENT_PREFIX)
public class VeranstaltungDocument extends VeranstaltungOhneTeilnehmerDocument {

  private static final long serialVersionUID = 1L;

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

  public VeranstaltungDocument(BaseElectContext baseElectContext, Veranstaltung veranstaltung, List<Teilnahme> teilnahmenEntities) {
    super(baseElectContext, veranstaltung);

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

    Long laufendeNummer = 1L;

    for (Teilnahme teilnahmenEntity : teilnahmenEntities) {
      this.teilnahmen.add(new TeilnahmeDokument(baseElectContext, teilnahmenEntity, laufendeNummer++));
    }
  }
}
