pub trait ProjectRepo {
// Required methods
fn create(&self, project: &Project) -> Result<(), ProjectError>;
fn find_by_id(
&self,
id: &ProjectId,
) -> Result<Option<Project>, ProjectError>;
fn find_by_name(&self, name: &str) -> Result<Option<Project>, ProjectError>;
fn list_all(&self) -> Result<Vec<Project>, ProjectError>;
fn delete(&self, id: &ProjectId) -> Result<(), ProjectError>;
}