use async_trait::async_trait;
use super::record::RegistryRecord;
use super::request::RegistrationRequest;
use crate::error::DppError;
use crate::passport::PassportId;
#[async_trait]
pub trait RegistrySyncPort: Send + Sync {
async fn register(&self, request: RegistrationRequest) -> Result<RegistryRecord, DppError>;
async fn check_status(&self, passport_id: PassportId) -> Result<RegistryRecord, DppError>;
async fn notify_transfer(
&self,
record: &crate::transfer::TransferRecord,
registry_id: &str,
) -> Result<RegistryRecord, DppError>;
}