use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReportingConfig {
pub enable_automated_reports: bool,
pub report_schedule: ReportSchedule,
pub report_formats: Vec<ReportFormat>,
pub distribution_config: DistributionConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReportSchedule {
pub frequency: ReportFrequency,
pub time_of_day: String,
pub time_zone: String,
pub custom_schedule: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum ReportFormat {
PDF,
HTML,
JSON,
CSV,
Excel,
PowerPoint,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DistributionConfig {
pub email_recipients: Vec<String>,
pub file_storage_locations: Vec<String>,
pub api_endpoints: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum ReportFrequency {
Hourly,
Daily,
Weekly,
Monthly,
Quarterly,
Custom,
}