use async_trait::async_trait;
use wx_rust_common::error::WxErrorException;
use crate::bean::WxFastMaAccountBasicInfoResult;
use crate::bean::WxFastMaBeenSetCategoryResult;
use crate::bean::WxFastMaCategory;
use crate::bean::WxFastMaCheckNickameResult;
use crate::bean::WxFastMaQueryNicknameStatusResult;
use crate::bean::WxFastMaSetNickameResult;
use crate::bean::WxOpenGetAllCategoriesByTypeResult;
use crate::bean::WxOpenMaCategoryNameListResult;
use crate::bean::WxOpenMaGetOrderPathResult;
use crate::bean::WxOpenResult;
#[async_trait]
pub trait WxOpenMaBasicService: Send + Sync {
async fn get_account_basic_info(
&self,
) -> Result<WxFastMaAccountBasicInfoResult, WxErrorException>;
async fn set_nickname(
&self,
nickname: &str,
id_card: &str,
license: &str,
naming_other_stuff1: &str,
naming_other_stuff2: &str,
) -> Result<WxFastMaSetNickameResult, WxErrorException>;
async fn query_set_nickname_status(
&self,
audit_id: &str,
) -> Result<WxFastMaQueryNicknameStatusResult, WxErrorException>;
async fn check_wx_verify_nickname(
&self,
nickname: &str,
) -> Result<WxFastMaCheckNickameResult, WxErrorException>;
async fn modify_head_image(
&self,
head_img_media_id: &str,
x1: f32,
y1: f32,
x2: f32,
y2: f32,
) -> Result<WxOpenResult, WxErrorException>;
async fn modify_signature(&self, signature: &str) -> Result<WxOpenResult, WxErrorException>;
fn get_component_rebind_admin_url(&self, redirect_uri: &str, app_id: &str) -> String;
async fn component_rebind_admin(&self, task_id: &str)
-> Result<WxOpenResult, WxErrorException>;
async fn get_all_categories(&self) -> Result<String, WxErrorException>;
async fn get_all_categories_by_type(
&self,
verify_type: &str,
) -> Result<WxOpenGetAllCategoriesByTypeResult, WxErrorException>;
async fn add_category(
&self,
category_list: &[WxFastMaCategory],
) -> Result<WxOpenResult, WxErrorException>;
async fn delete_category(
&self,
first: i32,
second: i32,
) -> Result<WxOpenResult, WxErrorException>;
async fn get_category(&self) -> Result<WxFastMaBeenSetCategoryResult, WxErrorException>;
async fn modify_category(
&self,
category: &WxFastMaCategory,
) -> Result<WxOpenResult, WxErrorException>;
async fn get_all_category_name(
&self,
) -> Result<WxOpenMaCategoryNameListResult, WxErrorException>;
async fn get_order_path_info(
&self,
info_type: i32,
) -> Result<WxOpenMaGetOrderPathResult, WxErrorException>;
}