use std::future::Future;
use fraiseql_error::Result;
use super::{CursorValue, DatabaseAdapter, RelayPageResult};
use crate::{types::sql_hints::OrderByClause, where_clause::WhereClause};
pub trait RelayDatabaseAdapter: DatabaseAdapter {
fn execute_relay_page<'a>(
&'a self,
view: &'a str,
cursor_column: &'a str,
after: Option<CursorValue>,
before: Option<CursorValue>,
limit: u32,
forward: bool,
where_clause: Option<&'a WhereClause>,
order_by: Option<&'a [OrderByClause]>,
include_total_count: bool,
) -> impl Future<Output = Result<RelayPageResult>> + Send + 'a;
}