class BookingDaoESImp extends BaseDaoESImp implements BookingDao {

    @Override
    public Map<Day, List<Booking>> getBookings(Set<Day> days) throws IOException
    {
        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
        SearchRequest searchRequest;
        List<String> dayStrs = new ArrayList(Day.getDayStringTreated(days, "-"));
        append(boolQueryBuilder, dayStrs, "days");
        append(boolQueryBuilder, "del", false);

        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().query(boolQueryBuilder).size(MAX_BOOKING_READ_PER_DAY);
        searchRequest = new SearchRequest(this.bookingsIndex).source(sourceBuilder);
        ESResponse esResponse = esclient.search(searchRequest);

        List docs = (List) ((Map) (esResponse.getSourceMap().get("hits"))).get("hits");
        Map<String, List<Booking>> dayStringBookingMap = extractBookings(docs);

        Map<Day, List<Booking>> result = new HashMap<>();
        for (Map.Entry<String, List<Booking>> entry : dayStringBookingMap.entrySet())
        {
            result.put(new Day(entry.getKey()), entry.getValue());
        }
        return result;
    }

    public  BookingDaoESImp();
    public  BookingDaoESImp(Properties properties);

}