quantrs2_device/performance_dashboard/
reporting.rs

1//! Reporting Configuration Types
2
3use serde::{Deserialize, Serialize};
4
5/// Reporting configuration
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct ReportingConfig {
8    /// Enable automated reporting
9    pub enable_automated_reports: bool,
10    /// Report generation schedule
11    pub report_schedule: ReportSchedule,
12    /// Report formats to generate
13    pub report_formats: Vec<ReportFormat>,
14    /// Report distribution settings
15    pub distribution_config: DistributionConfig,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct ReportSchedule {
20    pub frequency: ReportFrequency,
21    pub time_of_day: String,
22    pub time_zone: String,
23    pub custom_schedule: Option<String>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
27pub enum ReportFormat {
28    PDF,
29    HTML,
30    JSON,
31    CSV,
32    Excel,
33    PowerPoint,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct DistributionConfig {
38    pub email_recipients: Vec<String>,
39    pub file_storage_locations: Vec<String>,
40    pub api_endpoints: Vec<String>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
44pub enum ReportFrequency {
45    Hourly,
46    Daily,
47    Weekly,
48    Monthly,
49    Quarterly,
50    Custom,
51}