use std::sync::Arc; use async_trait::async_trait; use como_domain::{ projects::{mutation::CreateProjectMutation, queries::GetProjectQuery, ProjectDto}, users::User, }; pub type DynProjectService = Arc; #[async_trait] pub trait ProjectService { async fn get_project(&self, query: GetProjectQuery) -> anyhow::Result; async fn get_projects(&self, user: &User) -> anyhow::Result>; async fn create_project( &self, name: CreateProjectMutation, user: &User, ) -> anyhow::Result; }