1use core::marker::PhantomData;
20
21#[derive(Debug, Clone)]
23pub struct FindUniqueArgs<M, W, I, S> {
24 pub r#where: W,
26 pub include: Option<I>,
28 pub select: Option<S>,
30 #[doc(hidden)]
32 pub _model: PhantomData<M>,
33}
34
35impl<M, W: Default, I, S> Default for FindUniqueArgs<M, W, I, S> {
36 fn default() -> Self {
37 Self {
38 r#where: W::default(),
39 include: None,
40 select: None,
41 _model: PhantomData,
42 }
43 }
44}
45
46impl<M, W, I, S> FindUniqueArgs<M, W, I, S> {
47 pub fn new(r#where: W) -> Self {
49 Self {
50 r#where,
51 include: None,
52 select: None,
53 _model: PhantomData,
54 }
55 }
56}
57
58#[derive(Debug, Clone)]
60pub struct FindFirstArgs<M, W, I, S, O = (), C = ()> {
61 pub r#where: Option<W>,
63 pub include: Option<I>,
65 pub select: Option<S>,
67 pub order_by: Option<Vec<O>>,
69 pub cursor: Option<C>,
71 pub skip: Option<u64>,
73 pub take: Option<u64>,
75 #[doc(hidden)]
77 pub _model: PhantomData<M>,
78}
79
80impl<M, W, I, S, O, C> Default for FindFirstArgs<M, W, I, S, O, C> {
81 fn default() -> Self {
82 Self {
83 r#where: None,
84 include: None,
85 select: None,
86 order_by: None,
87 cursor: None,
88 skip: None,
89 take: None,
90 _model: PhantomData,
91 }
92 }
93}
94
95#[derive(Debug, Clone)]
97pub struct FindManyArgs<M, W, I, S, O = (), C = ()> {
98 pub r#where: Option<W>,
100 pub include: Option<I>,
102 pub select: Option<S>,
104 pub order_by: Option<Vec<O>>,
106 pub cursor: Option<C>,
108 pub skip: Option<u64>,
110 pub take: Option<u64>,
112 pub distinct: Option<Vec<String>>,
114 #[doc(hidden)]
116 pub _model: PhantomData<M>,
117}
118
119impl<M, W, I, S, O, C> Default for FindManyArgs<M, W, I, S, O, C> {
120 fn default() -> Self {
121 Self {
122 r#where: None,
123 include: None,
124 select: None,
125 order_by: None,
126 cursor: None,
127 skip: None,
128 take: None,
129 distinct: None,
130 _model: PhantomData,
131 }
132 }
133}
134
135#[derive(Debug, Clone)]
137pub struct CreateArgs<M, D, I, S> {
138 pub data: D,
140 pub include: Option<I>,
142 pub select: Option<S>,
144 #[doc(hidden)]
146 pub _model: PhantomData<M>,
147}
148
149impl<M, D: Default, I, S> Default for CreateArgs<M, D, I, S> {
150 fn default() -> Self {
151 Self {
152 data: D::default(),
153 include: None,
154 select: None,
155 _model: PhantomData,
156 }
157 }
158}
159
160#[derive(Debug, Clone)]
162pub struct CreateManyArgs<M, D> {
163 pub data: Vec<D>,
165 pub skip_duplicates: Option<bool>,
167 #[doc(hidden)]
169 pub _model: PhantomData<M>,
170}
171
172impl<M, D> Default for CreateManyArgs<M, D> {
173 fn default() -> Self {
174 Self {
175 data: Vec::new(),
176 skip_duplicates: None,
177 _model: PhantomData,
178 }
179 }
180}
181
182#[derive(Debug, Clone)]
184pub struct UpdateArgs<M, W, U, I, S> {
185 pub r#where: W,
187 pub data: U,
189 pub include: Option<I>,
191 pub select: Option<S>,
193 #[doc(hidden)]
195 pub _model: PhantomData<M>,
196}
197
198#[derive(Debug, Clone)]
200pub struct UpdateManyArgs<M, W, U> {
201 pub r#where: Option<W>,
203 pub data: U,
205 #[doc(hidden)]
207 pub _model: PhantomData<M>,
208}
209
210impl<M, W, U: Default> Default for UpdateManyArgs<M, W, U> {
211 fn default() -> Self {
212 Self {
213 r#where: None,
214 data: U::default(),
215 _model: PhantomData,
216 }
217 }
218}
219
220#[derive(Debug, Clone)]
222pub struct UpsertArgs<M, W, C, U, I, S> {
223 pub r#where: W,
225 pub create: C,
227 pub update: U,
229 pub include: Option<I>,
231 pub select: Option<S>,
233 #[doc(hidden)]
235 pub _model: PhantomData<M>,
236}
237
238#[derive(Debug, Clone)]
240pub struct DeleteArgs<M, W, I, S> {
241 pub r#where: W,
243 pub include: Option<I>,
245 pub select: Option<S>,
247 #[doc(hidden)]
249 pub _model: PhantomData<M>,
250}
251
252#[derive(Debug, Clone, Default)]
254pub struct DeleteManyArgs<M, W> {
255 pub r#where: Option<W>,
257 #[doc(hidden)]
259 pub _model: PhantomData<M>,
260}
261
262#[derive(Debug, Clone, Default)]
264pub struct CountArgs<M, W, O = (), C = ()> {
265 pub r#where: Option<W>,
267 pub order_by: Option<Vec<O>>,
269 pub cursor: Option<C>,
271 pub skip: Option<u64>,
273 pub take: Option<u64>,
275 #[doc(hidden)]
277 pub _model: PhantomData<M>,
278}
279
280#[derive(Debug, Clone, Default)]
282pub struct AggregateArgs<M, W, A, O = (), C = ()> {
283 pub r#where: Option<W>,
285 pub aggregate: Option<A>,
287 pub order_by: Option<Vec<O>>,
289 pub cursor: Option<C>,
291 pub skip: Option<u64>,
293 pub take: Option<u64>,
295 #[doc(hidden)]
297 pub _model: PhantomData<M>,
298}
299
300#[derive(Debug, Clone, Default)]
302pub struct GroupByArgs<M, W, A, G, H = (), O = ()> {
303 pub by: Vec<G>,
305 pub r#where: Option<W>,
307 pub having: Option<H>,
309 pub aggregate: Option<A>,
311 pub order_by: Option<Vec<O>>,
313 pub skip: Option<u64>,
315 pub take: Option<u64>,
317 #[doc(hidden)]
319 pub _model: PhantomData<M>,
320}