pub trait ActixAdminViewModelTrait {
// Required methods
fn list<'life0, 'life1, 'life2, 'life3, 'async_trait>(
db: &'life0 DatabaseConnection,
page: u64,
entities_per_page: u64,
viewmodel_filter: Vec<ActixAdminViewModelFilter>,
search: &'life1 str,
sort_by: &'life2 str,
sort_order: &'life3 SortOrder
) -> Pin<Box<dyn Future<Output = Result<(u64, Vec<ActixAdminModel>), ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn create_entity<'life0, 'async_trait>(
db: &'life0 DatabaseConnection,
model: ActixAdminModel
) -> Pin<Box<dyn Future<Output = Result<ActixAdminModel, ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait;
fn delete_entity<'life0, 'async_trait>(
db: &'life0 DatabaseConnection,
id: i32
) -> Pin<Box<dyn Future<Output = Result<bool, ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait;
fn get_entity<'life0, 'async_trait>(
db: &'life0 DatabaseConnection,
id: i32
) -> Pin<Box<dyn Future<Output = Result<ActixAdminModel, ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait;
fn edit_entity<'life0, 'async_trait>(
db: &'life0 DatabaseConnection,
id: i32,
model: ActixAdminModel
) -> Pin<Box<dyn Future<Output = Result<ActixAdminModel, ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait;
fn get_select_lists<'life0, 'async_trait>(
db: &'life0 DatabaseConnection
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<(String, String)>>, ActixAdminError>> + 'async_trait>>
where 'life0: 'async_trait;
fn get_viewmodel_filter<'life0, 'async_trait>(
db: &'life0 DatabaseConnection
) -> Pin<Box<dyn Future<Output = HashMap<String, ActixAdminViewModelFilter>> + 'async_trait>>
where 'life0: 'async_trait;
fn validate_entity(model: &mut ActixAdminModel);
fn get_entity_name() -> String;
// Provided method
fn get_base_path(entity_name: &String) -> String { ... }
}