use crate::{
CreatePaymentRequest, PaymentError, PaymentSession, PaymentStatusResponse, ProviderReference,
};
#[async_trait::async_trait]
pub trait MobileMoneyGateway: Send + Sync {
async fn create_collection(
&self,
request: CreatePaymentRequest,
) -> Result<PaymentSession, PaymentError>;
async fn collection_status(
&self,
provider_reference: &ProviderReference,
) -> Result<PaymentStatusResponse, PaymentError>;
}