#[cfg(feature = "sqlx")]
use std::marker::PhantomData;
#[cfg(feature = "sqlx")]
use std::sync::Arc;
#[cfg(feature = "sqlx")]
use crate::PrismaService;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SortOrder {
Asc,
Desc,
}
impl SortOrder {
pub fn as_sql(self) -> &'static str {
match self {
SortOrder::Asc => "ASC",
SortOrder::Desc => "DESC",
}
}
}
#[cfg(feature = "sqlx")]
pub struct ModelRepository<M> {
#[allow(dead_code)]
pub(crate) prisma: Arc<PrismaService>,
pub(crate) _marker: PhantomData<M>,
}
#[cfg(feature = "sqlx")]
impl<M> ModelRepository<M> {
pub fn new(prisma: Arc<PrismaService>) -> Self {
Self {
prisma,
_marker: PhantomData,
}
}
pub fn prisma(&self) -> Arc<PrismaService> {
Arc::clone(&self.prisma)
}
}