use async_trait::async_trait; use imphnen_utils::errors::AppError; use uuid::Uuid; use super::entity::{CampaignEntity, CreateCampaignInput}; #[async_trait] pub trait CampaignRepository: Send + Sync { async fn create( &self, input: CreateCampaignInput, ) -> Result; async fn find_all(&self) -> Result, AppError>; async fn find_active_qr_data(&self) -> Result>, AppError>; async fn set_active(&self, id: Uuid) -> Result; async fn delete(&self, id: Uuid) -> Result<(), AppError>; }