#[derive(Debug, Clone)]
pub struct Post {
pub id: i32,
pub title: String,
pub content: Option<String>,
pub status: PostStatus,
pub published: bool,
pub views: i32,
pub created_at: chrono::DateTime<chrono::Utc>,
pub updated_at: chrono::DateTime<chrono::Utc>,
pub author_id: i32,
pub author: User,
}
pub struct PostOperations<'a, E: prax_query::QueryEngine> {
engine: &'a E,
}
impl<'a, E: prax_query::QueryEngine> PostOperations<'a, E> {
pub fn new(engine: &'a E) -> Self {
Self { engine }
}
pub fn find_many(&self) -> prax_query::FindManyOperation<'a, E, Post> {
prax_query::FindManyOperation::new(self.engine, "posts")
}
pub fn find_unique(&self) -> prax_query::FindUniqueOperation<'a, E, Post> {
prax_query::FindUniqueOperation::new(self.engine, "posts")
}
pub fn find_first(&self) -> prax_query::FindFirstOperation<'a, E, Post> {
prax_query::FindFirstOperation::new(self.engine, "posts")
}
pub fn create(&self) -> prax_query::CreateOperation<'a, E, Post> {
prax_query::CreateOperation::new(self.engine, "posts")
}
pub fn update(&self) -> prax_query::UpdateOperation<'a, E, Post> {
prax_query::UpdateOperation::new(self.engine, "posts")
}
pub fn delete(&self) -> prax_query::DeleteOperation<'a, E, Post> {
prax_query::DeleteOperation::new(self.engine, "posts")
}
pub fn count(&self) -> prax_query::CountOperation<'a, E> {
prax_query::CountOperation::new(self.engine, "posts")
}
}