
package de.ivu.elect.dokumente.veranstaltung;

import de.ivu.document.generator.template.BaseDocument;
import de.ivu.document.generator.template.annotations.DocumentComplexField;
import de.ivu.document.generator.template.annotations.DocumentSimpleField;
import de.ivu.elect.business.veranstaltung.entity.Veranstaltung;
import de.ivu.elect.dokumente.AnschriftDokument;
import de.ivu.elect.dokumente.BaseElectContext;
import de.ivu.elect.dokumente.gebiet.GebietMitAnsprechpartnerDokument;
import de.ivu.elect.dokumente.PersonOhneAnschriftOhneKonto;

public class Veranstaltungsinformationen extends BaseDocument {

  private static final long serialVersionUID = 1L;

  @DocumentSimpleField("Bezeichnung")
  public final String bezeichnung;

  @DocumentSimpleField("Art")
  public final String art;

  @DocumentSimpleField("Status")
  public final String status;

  @DocumentSimpleField("Bemerkung")
  public final String bemerkung;

  @DocumentSimpleField("Beginn-Datum")
  public final String beginnDatum;

  @DocumentSimpleField("Beginn-Uhrzeit")
  public final String beginnUhrzeit;

  @DocumentSimpleField("Beginn")
  public final String beginn;

  @DocumentSimpleField("Ende-Datum")
  public final String endeDatum;

  @DocumentSimpleField("Ende-Uhrzeit")
  public final String endeUhrzeit;

  @DocumentSimpleField("Ende")
  public final String ende;

  @DocumentComplexField("Ansprechpartner")
  public final PersonOhneAnschriftOhneKonto ansprechpartner;

  @DocumentComplexField("Anschrift")
  public final AnschriftDokument anschrift;

  @DocumentComplexField("Gebiet")
  public final GebietMitAnsprechpartnerDokument gebiet;

  @DocumentSimpleField("Raumbezeichnung")
  public final String raumBezeichnung;

  @DocumentSimpleField("Veranstaltungsort")
  public final String veranstaltungOrt;

  public Veranstaltungsinformationen(BaseElectContext baseElectContext, Veranstaltung veranstaltung) {
    super();

    this.bezeichnung = veranstaltung.getBezeichnung();
    this.art = baseElectContext.getMessage(veranstaltung.getVeranstaltungArt());
    this.status = baseElectContext.getMessage(veranstaltung.getVeranstaltungStatus());
    this.bemerkung = veranstaltung.getBemerkung();

    this.beginnDatum = baseElectContext.formatDateMedium(veranstaltung.getBeginn());
    this.beginnUhrzeit = baseElectContext.formatTimeHHmm(veranstaltung.getBeginn());
    this.endeDatum = baseElectContext.formatDateMedium(veranstaltung.getEnde());
    this.endeUhrzeit = baseElectContext.formatTimeHHmm(veranstaltung.getEnde());

    this.beginn = baseElectContext.formatDateTimeMedium(veranstaltung.getBeginn());
    this.ende = baseElectContext.formatDateTimeMedium(veranstaltung.getEnde());

    this.raumBezeichnung = veranstaltung.getRaumBezeichnung();
    this.veranstaltungOrt = veranstaltung.getVeranstaltungOrt();

    this.ansprechpartner = new PersonOhneAnschriftOhneKonto(baseElectContext, veranstaltung.getAnsprechpartner());
    this.anschrift = new AnschriftDokument(baseElectContext, veranstaltung.getAnschrift());
    this.gebiet = new GebietMitAnsprechpartnerDokument(baseElectContext, veranstaltung.getGebiet());
  }
}
