use async_trait::async_trait;
use crate::bean::ocr::{
WxOcrBankCardResult, WxOcrBizLicenseResult, WxOcrCommResult, WxOcrDrivingLicenseResult,
WxOcrDrivingResult, WxOcrIdCardResult,
};
use crate::error::WxErrorException;
#[async_trait]
pub trait WxOcrService: Send + Sync {
async fn ocr_comm(&self, img_url: &str) -> Result<WxOcrCommResult, WxErrorException>;
async fn ocr_driving_license(
&self,
img_url: &str,
) -> Result<WxOcrDrivingLicenseResult, WxErrorException>;
async fn ocr_driving(&self, img_url: &str) -> Result<WxOcrDrivingResult, WxErrorException>;
async fn ocr_bank_card(&self, img_url: &str) -> Result<WxOcrBankCardResult, WxErrorException>;
async fn ocr_biz_license(
&self,
img_url: &str,
) -> Result<WxOcrBizLicenseResult, WxErrorException>;
async fn ocr_id_card(&self, img_url: &str) -> Result<WxOcrIdCardResult, WxErrorException>;
}