use strum::{EnumDiscriminants, EnumIter, EnumMessage};
mod permissions;
mod prepaid_storage;
#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
pub struct SocialDb {
#[interactive_clap(subcommand)]
social_db_command: SocialDbCommand,
}
#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
#[strum_discriminants(derive(EnumMessage, EnumIter))]
pub enum SocialDbCommand {
#[strum_discriminants(strum(
message = "prepaid-storage - Storage management: deposit, withdrawal, balance review"
))]
PrepaidStorage(self::prepaid_storage::PrepaidStorage),
#[strum_discriminants(strum(
message = "permissions - Granting access permissions to a different account"
))]
Permissions(self::permissions::Permissions),
}