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

import java.util.List;

import de.ivu.elect.business.protokollierung.entity.LoeschProtokoll;
import de.ivu.elect.business.protokollierung.entity.QLoeschProtokoll;
import de.ivu.elect.jee.entity.QueryDsl;

public class LoeschProtokollSearch extends AbstractLoeschProtokollSearch {
  @Override
  protected List<LoeschProtokoll> querySearchResult(LoeschProtokollSearchParameters searchParameters) {

    QueryDsl queryDsl = dao.getQueryDsl();
    QLoeschProtokoll qLoeschProtokoll = QLoeschProtokoll.loeschProtokoll;
    queryDsl.from(qLoeschProtokoll);
    queryDsl.eqIfNotNull(qLoeschProtokoll.wahltermin, searchParameters.getLoeschProtokoll().getWahltermin());
    queryDsl.eqIfNotNull(qLoeschProtokoll.wahl, searchParameters.getLoeschProtokoll().getWahl());

    queryDsl.eqIfNotBlank(qLoeschProtokoll.entitaet, searchParameters.getLoeschProtokoll().getEntitaet());

    queryDsl.orderBy(qLoeschProtokoll.zeitpunkt.desc(), qLoeschProtokoll.id.desc());

    return searchParameters.applyLimit(queryDsl).list(qLoeschProtokoll);

  }
}
