use async_trait::async_trait;
use wx_rust_common::error::WxErrorException;
use crate::bean::MinishopAuditStatus;
use crate::bean::MinishopBrandList;
use crate::bean::MinishopBusiLicense;
use crate::bean::MinishopCategories;
use crate::bean::MinishopIdcardInfo;
use crate::bean::MinishopNameInfo;
use crate::bean::MinishopOrganizationCodeInfo;
use crate::bean::MinishopReturnInfo;
use crate::bean::MinishopShopCatList;
use crate::bean::MinishopSuperAdministratorInfo;
use crate::bean::WxOpenResult;
#[async_trait]
pub trait WxOpenMinishopService: Send + Sync {
#[allow(clippy::too_many_arguments)]
async fn submit_merchant_info(
&self,
app_id: &str,
subject_type: &str,
busi_license: &MinishopBusiLicense,
organization_code_info: &MinishopOrganizationCodeInfo,
idcard_info: &MinishopIdcardInfo,
super_administrator_info: &MinishopSuperAdministratorInfo,
merchant_shortname: &str,
) -> Result<Option<WxOpenResult>, WxErrorException>;
async fn submit_basic_info(
&self,
app_id: &str,
name_info: &MinishopNameInfo,
return_info: &MinishopReturnInfo,
) -> Result<Option<WxOpenResult>, WxErrorException>;
async fn check_audit_status(
&self,
wx_name: &str,
) -> Result<Option<MinishopAuditStatus>, WxErrorException>;
async fn upload_image_pic_file(
&self,
height: i32,
width: i32,
file_path: &str,
) -> Result<String, WxErrorException>;
async fn get_category(
&self,
f_cat_id: i32,
) -> Result<Option<MinishopCategories>, WxErrorException>;
async fn get_brands(&self) -> Result<Option<MinishopBrandList>, WxErrorException>;
async fn get_shop_cat(&self) -> Result<Option<MinishopShopCatList>, WxErrorException>;
}