
package de.ivu.elect.dokumente.wahltermin;

import java.util.List;

import de.ivu.document.generator.template.annotations.DocumentComplexField;
import de.ivu.document.generator.template.annotations.DocumentRepeat;
import de.ivu.document.generator.template.annotations.DocumentSubTemplate;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.dokumente.BaseElectContext;
import de.ivu.elect.dokumente.gebiet.GebietMitAnsprechpartnerDokument;

public class WahlterminGebietDokument extends GebietMitAnsprechpartnerDokument {

  private static final long serialVersionUID = 1L;

  @DocumentSubTemplate
  @DocumentComplexField("Wahlhelfereinsatzort")
  public final PlatzhalterWahlhelfereinsatzortDokument wahlhelfereinsatzortDokument;

  @DocumentSubTemplate
  @DocumentRepeat(value = "Untergeordnete Urnenwahlbezirke", elementClass = WahlterminGebietDokument.class, itemName = "urnenwahlbezirk")
  public final List<WahlterminGebietDokument> urnenwahlbezirke;

  @DocumentSubTemplate
  @DocumentRepeat(value = "Untergeordnete Briefwahlbezirke", elementClass = WahlterminGebietDokument.class, itemName = "briefwahlbezirk")
  public final List<WahlterminGebietDokument> briefwahlbezirke;

  // ELECT-8835
  @DocumentSubTemplate
  @DocumentRepeat(value = "Untergeordnete Sonderstimmbezirke", elementClass = WahlterminGebietDokument.class, itemName = "sonderstimmbezirk")
  private final List<WahlterminGebietDokument> sonderstimmbezirke;

  public WahlterminGebietDokument(BaseElectContext baseElectContext, Gebiet gebiet, PlatzhalterWahlhelfereinsatzortDokument wahlhelfereinsatzortDokument,
      List<WahlterminGebietDokument> urnenwahlbezirke, List<WahlterminGebietDokument> briefwahlbezirke, List<WahlterminGebietDokument> sonderstimmbezirke) {
    super(baseElectContext, gebiet);

    this.wahlhelfereinsatzortDokument = wahlhelfereinsatzortDokument;

    this.urnenwahlbezirke = urnenwahlbezirke;
    this.briefwahlbezirke = briefwahlbezirke;
    this.sonderstimmbezirke = sonderstimmbezirke;
  }
}
