use core::marker::PhantomData;
#[derive(Debug, Clone)]
pub struct FindUniqueArgs<M, W, I, S> {
pub r#where: W,
pub include: Option<I>,
pub select: Option<S>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, W: Default, I, S> Default for FindUniqueArgs<M, W, I, S> {
fn default() -> Self {
Self {
r#where: W::default(),
include: None,
select: None,
_model: PhantomData,
}
}
}
impl<M, W, I, S> FindUniqueArgs<M, W, I, S> {
pub fn new(r#where: W) -> Self {
Self {
r#where,
include: None,
select: None,
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct FindFirstArgs<M, W, I, S, O = (), C = ()> {
pub r#where: Option<W>,
pub include: Option<I>,
pub select: Option<S>,
pub order_by: Option<Vec<O>>,
pub cursor: Option<C>,
pub skip: Option<u64>,
pub take: Option<u64>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, W, I, S, O, C> Default for FindFirstArgs<M, W, I, S, O, C> {
fn default() -> Self {
Self {
r#where: None,
include: None,
select: None,
order_by: None,
cursor: None,
skip: None,
take: None,
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct FindManyArgs<M, W, I, S, O = (), C = ()> {
pub r#where: Option<W>,
pub include: Option<I>,
pub select: Option<S>,
pub order_by: Option<Vec<O>>,
pub cursor: Option<C>,
pub skip: Option<u64>,
pub take: Option<u64>,
pub distinct: Option<Vec<String>>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, W, I, S, O, C> Default for FindManyArgs<M, W, I, S, O, C> {
fn default() -> Self {
Self {
r#where: None,
include: None,
select: None,
order_by: None,
cursor: None,
skip: None,
take: None,
distinct: None,
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct CreateArgs<M, D, I, S> {
pub data: D,
pub include: Option<I>,
pub select: Option<S>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, D: Default, I, S> Default for CreateArgs<M, D, I, S> {
fn default() -> Self {
Self {
data: D::default(),
include: None,
select: None,
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct CreateManyArgs<M, D> {
pub data: Vec<D>,
pub skip_duplicates: Option<bool>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, D> Default for CreateManyArgs<M, D> {
fn default() -> Self {
Self {
data: Vec::new(),
skip_duplicates: None,
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct UpdateArgs<M, W, U, I, S> {
pub r#where: W,
pub data: U,
pub include: Option<I>,
pub select: Option<S>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone)]
pub struct UpdateManyArgs<M, W, U> {
pub r#where: Option<W>,
pub data: U,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
impl<M, W, U: Default> Default for UpdateManyArgs<M, W, U> {
fn default() -> Self {
Self {
r#where: None,
data: U::default(),
_model: PhantomData,
}
}
}
#[derive(Debug, Clone)]
pub struct UpsertArgs<M, W, C, U, I, S> {
pub r#where: W,
pub create: C,
pub update: U,
pub include: Option<I>,
pub select: Option<S>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone)]
pub struct DeleteArgs<M, W, I, S> {
pub r#where: W,
pub include: Option<I>,
pub select: Option<S>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone, Default)]
pub struct DeleteManyArgs<M, W> {
pub r#where: Option<W>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone, Default)]
pub struct CountArgs<M, W, O = (), C = ()> {
pub r#where: Option<W>,
pub order_by: Option<Vec<O>>,
pub cursor: Option<C>,
pub skip: Option<u64>,
pub take: Option<u64>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone, Default)]
pub struct AggregateArgs<M, W, A, O = (), C = ()> {
pub r#where: Option<W>,
pub aggregate: Option<A>,
pub order_by: Option<Vec<O>>,
pub cursor: Option<C>,
pub skip: Option<u64>,
pub take: Option<u64>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}
#[derive(Debug, Clone, Default)]
pub struct GroupByArgs<M, W, A, G, H = (), O = ()> {
pub by: Vec<G>,
pub r#where: Option<W>,
pub having: Option<H>,
pub aggregate: Option<A>,
pub order_by: Option<Vec<O>>,
pub skip: Option<u64>,
pub take: Option<u64>,
#[doc(hidden)]
pub _model: PhantomData<M>,
}