use std::collections::HashMap;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthorDrilldownData {
pub generated_at: String,
pub email: String,
pub name: String,
pub period: ReportPeriod,
pub commits: CommitSection,
pub effort: EffortSection,
pub pull_requests: PrSection,
pub categories: HashMap<String, usize>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReportPeriod {
pub since: Option<String>,
pub until: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CommitSection {
pub total: u64,
pub ticketed: u64,
pub ticket_coverage: Option<f64>,
pub repositories: Vec<String>,
pub first_commit: Option<String>,
pub last_commit: Option<String>,
pub insertions: i64,
pub deletions: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EffortSection {
pub scored_commits: u64,
pub total_commits: u64,
pub histogram: HashMap<String, u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PrSection {
pub total: u64,
pub merged: u64,
pub avg_cycle_time_hours: Option<f64>,
pub median_cycle_time_hours: Option<f64>,
pub p95_cycle_time_hours: Option<f64>,
}