package io.oasp.gastronomy.restaurant.tablemanagement.dataaccess.api.dao;
import io.oasp.gastronomy.restaurant.general.dataaccess.api.dao.ApplicationDao;
import io.oasp.gastronomy.restaurant.tablemanagement.dataaccess.api.TableEntity;
import io.oasp.gastronomy.restaurant.tablemanagement.logic.api.to.TableSearchCriteriaTo;
import io.oasp.module.jpa.common.api.to.PaginatedListTo;
import io.oasp.module.jpa.dataaccess.api.MasterDataDao;
import java.util.List;
/**
* {@link ApplicationDao Data Access Object} for {@link TableEntity} entity.
*
*/
public interface TableDao extends ApplicationDao<TableEntity>, MasterDataDao<TableEntity> {
/**
* Returns a list of free restaurant tables.
*
* @return {@link List} of free restaurant {@link TableEntity}s
*/
List<TableEntity> getFreeTables();
/**
* Finds the {@link TableEntity orders} matching the given {@link TableSearchCriteriaTo}.
*
* @param criteria is the {@link TableSearchCriteriaTo}.
* @return the {@link List} with the matching {@link TableEntity} objects.
*/
PaginatedListTo<TableEntity> findTables(TableSearchCriteriaTo criteria);
}