use async_trait::async_trait;
use ferrox_errors::AppError;
#[async_trait]
pub trait PaymentProvider: Send + Sync {
async fn charge(&self, amount: i64, currency: &str, source_id: &str) -> Result<String, AppError>;
async fn refund(&self, transaction_id: &str) -> Result<(), AppError>;
}
#[async_trait]
pub trait NotificationProvider: Send + Sync {
async fn send_email(&self, to: &str, subject: &str, body: &str) -> Result<(), AppError>;
async fn send_chat(&self, channel_id: &str, message: &str) -> Result<(), AppError>;
}
pub fn setup() {
println!("ferrox-integrations initialized: Third-Party API abstractions ready.");
}