quantrs2_device/performance_dashboard/
reporting.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct ReportingConfig {
8 pub enable_automated_reports: bool,
10 pub report_schedule: ReportSchedule,
12 pub report_formats: Vec<ReportFormat>,
14 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}