Trait QueryBuilder
Source pub trait QueryBuilder {
// Required methods
fn build_get_records(
&self,
model: &Model,
query_arguments: QueryArguments,
selected_fields: &FieldSelection,
relation_load_strategy: RelationLoadStrategy,
) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
fn build_aggregate(
&self,
model: &Model,
args: QueryArguments,
selections: &[AggregationSelection],
group_by: Vec<ScalarField>,
having: Option<Filter>,
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_create_record(
&self,
model: &Model,
args: WriteArgs,
selected_fields: &FieldSelection,
) -> Result<CreateRecord, Box<dyn Error + Send + Sync>>;
fn build_inserts(
&self,
model: &Model,
args: Vec<WriteArgs>,
skip_duplicates: bool,
selected_fields: Option<&FieldSelection>,
) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
fn build_update(
&self,
model: &Model,
record_filter: RecordFilter,
args: WriteArgs,
selected_fields: Option<&FieldSelection>,
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_updates(
&self,
model: &Model,
record_filter: RecordFilter,
args: WriteArgs,
selected_fields: Option<&FieldSelection>,
limit: Option<usize>,
) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
fn build_upsert(
&self,
model: &Model,
filter: Filter,
create_args: WriteArgs,
update_args: WriteArgs,
selected_fields: &FieldSelection,
unique_constraints: &[ScalarField],
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_m2m_connect(
&self,
parent_field: RelationField,
parent: PrismaValue,
child: PrismaValue,
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_m2m_disconnect(
&self,
field: RelationField,
parent_id: &SelectionResult,
child_ids: &[SelectionResult],
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_delete(
&self,
model: &Model,
filter: RecordFilter,
selected_fields: Option<&FieldSelection>,
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
fn build_deletes(
&self,
model: &Model,
filter: RecordFilter,
limit: Option<usize>,
) -> Result<Vec<DbQuery>, Box<dyn Error + Send + Sync>>;
fn build_raw(
&self,
model: Option<&Model>,
inputs: HashMap<String, PrismaValue>,
query_type: Option<String>,
) -> Result<DbQuery, Box<dyn Error + Send + Sync>>;
}