use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MarketplaceEconomicConfig {
pub enable_economics: bool,
pub incentive_mechanisms: Vec<IncentiveMechanism>,
pub reputation_system: ReputationSystemConfig,
pub contribution_rewards: ContributionRewardConfig,
pub marketplace_economics: EconomicModelConfig,
pub resource_economics: ResourceEconomicsConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum IncentiveMechanism {
ContributionPoints,
ReputationTokens,
AccessPrivileges,
ResourceCredits,
RecognitionBadges,
CollaborativeRewards,
Custom(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReputationSystemConfig {
pub enable_reputation: bool,
pub reputation_metrics: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContributionRewardConfig {
pub reward_system: String,
pub reward_thresholds: Vec<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EconomicModelConfig {
pub model_type: String,
pub pricing_strategy: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceEconomicsConfig {
pub allocation_method: String,
pub cost_model: String,
}