#![allow(unused)]
#![cfg_attr(coverage_nightly, coverage(off))]
use crate::unified_quality::{QualityMode, QualityPhilosophy};
use anyhow::Result;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
pub struct TeamOnboarding {
sessions: HashMap<TeamId, OnboardingSession>,
tutorials: TutorialLibrary,
config: OnboardingConfig,
}
pub type TeamId = String;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OnboardingSession {
pub team_id: TeamId,
pub current_phase: OnboardingPhase,
pub completed_tutorials: Vec<String>,
pub quality_mode: QualityMode,
pub started_at: std::time::SystemTime,
pub progress: OnboardingProgress,
pub preferences: TeamPreferences,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub enum OnboardingPhase {
Introduction,
MonitoringSetup,
MetricsLearning,
EnforcementConfig,
AutomationSetup,
AdvancedFeatures,
ProductionReady,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OnboardingProgress {
pub tutorials_completed: u32,
pub tutorials_total: u32,
pub exercises_completed: u32,
pub quality_improvements: u32,
pub days_active: u32,
pub engagement_score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamPreferences {
pub languages: Vec<String>,
pub learning_style: LearningStyle,
pub notifications: NotificationPreference,
pub philosophy: QualityPhilosophy,
pub team_info: TeamInfo,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LearningStyle {
Practical,
Theoretical,
Balanced,
Exploratory,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NotificationPreference {
pub daily_updates: bool,
pub weekly_summaries: bool,
pub achievements: bool,
pub celebrations: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamInfo {
pub size: u32,
pub experience_level: ExperienceLevel,
pub project_type: ProjectType,
pub quality_maturity: QualityMaturity,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ExperienceLevel {
Junior,
Intermediate,
Senior,
Mixed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ProjectType {
WebApplication,
SystemsSoftware,
DataScience,
Mobile,
Library,
Microservices,
Monolith,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum QualityMaturity {
None,
Basic,
Intermediate,
Advanced,
}
#[derive(Debug, Clone)]
pub struct TutorialLibrary {
tutorials: HashMap<OnboardingPhase, Vec<Tutorial>>,
}
include!("onboarding_types.rs");
include!("onboarding_workflow.rs");
include!("onboarding_scoring.rs");
include!("tutorial_library.rs");
#[cfg(all(test, feature = "broken-tests"))]
#[path = "tests.rs"]
mod tests;