package de.ivu.elect.business.wahlbeteiligung.boundary;

import java.util.Collections;
import java.util.List;

import de.ivu.elect.business.wahlbeteiligung.entity.QWahlbeteiligungVerlauf;
import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlauf;
import de.ivu.elect.jee.entity.QueryDsl;

public class WahlbeteiligungVerlaufSearch extends AbstractWahlbeteiligungVerlaufSearch {



  @Override
  protected List<WahlbeteiligungVerlauf> querySearchResult(WahlbeteiligungVerlaufSearchParameters searchParameters) {
    if (searchParameters.getWahl() == null) {
      return Collections.emptyList();
    }

    QueryDsl qdsl = dao.getQueryDsl();

    QWahlbeteiligungVerlauf wahlbeteiligungVerlauf = QWahlbeteiligungVerlauf.wahlbeteiligungVerlauf;
    qdsl.from(wahlbeteiligungVerlauf);

    qdsl.eq(wahlbeteiligungVerlauf.wahl, searchParameters.getWahl());
    qdsl.eqIfNotNull(wahlbeteiligungVerlauf.status, searchParameters.getWahlbeteiligungVerlauf().getStatus());
    qdsl.eqIfNotNull(wahlbeteiligungVerlauf.typ, searchParameters.getWahlbeteiligungVerlauf().getTyp());

    qdsl.orderBy(wahlbeteiligungVerlauf.datum.asc(), wahlbeteiligungVerlauf.name.asc());
    return qdsl.list(wahlbeteiligungVerlauf);

  }
}
