
package de.ivu.elect.exchange.person;

import java.util.Date;

import javax.annotation.Nullable;

import org.jsefa.csv.annotation.CsvDataType;
import org.jsefa.csv.annotation.CsvField;

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.jsefa.CsvHeader;

@CsvDataType
public class DefaultGesperrtePersonDTO {

  public static final String DEFAULT_GEBURTSDATUM_DATE_PATTERN = "dd.MM.yyyy";

  @Deprecated
  public static final String MANN = "m";

  @Deprecated
  public static final String FRAU = "w";

  @CsvField(pos = 1)
  @CsvHeader("Familienname")
  private String familienname;

  @CsvField(pos = 2)
  @CsvHeader("Vorname")
  private String rufname;

  @CsvField(pos = 3, format = DefaultGesperrtePersonDTO.DEFAULT_GEBURTSDATUM_DATE_PATTERN)
  @CsvHeader("Geburtsdatum (TT.MM.JJJJ)")
  private Date geburtsdatum;

  @CsvField(pos = 4)
  @CsvHeader("Geschlecht")
  private String geschlecht;

  @CsvField(pos = 5)
  @CsvHeader("Ordnungsmerkmal")
  private String ordnungsmerkmal;

  @CsvField(pos = 6)
  @CsvHeader("Sperrgrund")
  private String sperrgrund;

  public DefaultGesperrtePersonDTO() {
    super();
  }

  public DefaultGesperrtePersonDTO(Personendaten zuSperrendePerson, String sperrgrund) {
    super();

    setFamilienname(zuSperrendePerson.getFamilienname());
    setRufname(zuSperrendePerson.getRufname());
    setGeburtsdatum(zuSperrendePerson.getGeburtsdatum());
    setGeschlecht(zuSperrendePerson.getGeschlecht().toString());
    setOrdnungsmerkmal(zuSperrendePerson.getOrdnungsmerkmal());
    setSperrgrund(sperrgrund);
  }

  public String getSperrgrund() {
    return sperrgrund;
  }

  public void setSperrgrund(String sperrgrund) {
    this.sperrgrund = sperrgrund;
  }

  public String getFamilienname() {
    return familienname;
  }

  public void setFamilienname(@Nullable String familienname) {
    this.familienname = familienname;
  }

  public String getRufname() {
    return rufname;
  }

  public void setRufname(@Nullable String rufname) {
    this.rufname = rufname;
  }

  public Date getGeburtsdatum() {
    return geburtsdatum;
  }

  public void setGeburtsdatum(@Nullable Date geburtsdatum) {
    this.geburtsdatum = geburtsdatum;
  }

  public String getGeschlecht() {
    return geschlecht;
  }

  public void setGeschlecht(String geschlecht) {
    this.geschlecht = geschlecht;
  }

  public String getOrdnungsmerkmal() {
    return ordnungsmerkmal;
  }

  public void setOrdnungsmerkmal(@Nullable String ordnungsmerkmal) {
    this.ordnungsmerkmal = ordnungsmerkmal;
  }
}
