1#[cfg(feature = "sqlx")]
4use std::marker::PhantomData;
5#[cfg(feature = "sqlx")]
6use std::sync::Arc;
7
8#[cfg(feature = "sqlx")]
9use crate::PrismaService;
10
11#[derive(Debug, Clone, Copy, PartialEq, Eq)]
13pub enum SortOrder {
14 Asc,
15 Desc,
16}
17
18impl SortOrder {
19 pub fn as_sql(self) -> &'static str {
20 match self {
21 SortOrder::Asc => "ASC",
22 SortOrder::Desc => "DESC",
23 }
24 }
25}
26
27#[cfg(feature = "sqlx")]
29pub struct ModelRepository<M> {
30 #[allow(dead_code)]
32 pub(crate) prisma: Arc<PrismaService>,
33 pub(crate) _marker: PhantomData<M>,
34}
35
36#[cfg(feature = "sqlx")]
37impl<M> ModelRepository<M> {
38 pub fn new(prisma: Arc<PrismaService>) -> Self {
40 Self {
41 prisma,
42 _marker: PhantomData,
43 }
44 }
45
46 pub fn prisma(&self) -> Arc<PrismaService> {
48 Arc::clone(&self.prisma)
49 }
50}