use crate::tina::server::session::Session;
use indexmap::IndexMap;
use serde::Serialize;
use serde_json::Value;
use super::data::AppResult;
#[async_trait]
pub trait IExcelSheet: Send + Sync + 'static {
async fn get_sheet_name(&self, session: &Session) -> AppResult<String>;
}
#[async_trait]
pub trait IExcelRow: Serialize + Send + Sync + 'static {
async fn get_field_column_mapping(&self, session: &Session) -> AppResult<IndexMap<String, String>>;
async fn get_field_dict(&self, session: &Session) -> AppResult<IndexMap<String, String>>;
async fn get_field_enum_mapping(&self, session: &Session) -> AppResult<IndexMap<String, IndexMap<String, String>>>;
async fn get_field_datas(&self, session: &Session) -> AppResult<IndexMap<String, Value>>;
}