use async_trait::async_trait; use crate::{entities::IngestSession, errors::DomainError, value_objects::SystemId}; #[async_trait] pub trait IngestSessionRepository: Send + Sync { async fn find_by_id(&self, id: &SystemId) -> Result, DomainError>; async fn find_by_user(&self, user_id: &SystemId) -> Result, DomainError>; async fn save(&self, session: &IngestSession) -> Result<(), DomainError>; }