use async_trait::async_trait;
#[async_trait]
pub trait PairingChannelAdapter: Send + Sync {
fn channel_id(&self) -> &'static str;
fn normalize_sender(&self, raw: &str) -> Option<String>;
fn format_challenge_text(&self, code: &str) -> String {
format!("🔐 Pairing required.\nAsk the operator to run:\n nexo pair approve {code}",)
}
async fn send_reply(&self, account: &str, to: &str, text: &str) -> anyhow::Result<()>;
async fn send_qr_image(&self, _account: &str, _to: &str, _png: &[u8]) -> anyhow::Result<()> {
anyhow::bail!("send_qr_image not supported by this channel adapter")
}
}