| """ |
| Pythonic data models for ARF Demo |
| """ |
|
|
| from dataclasses import dataclass, asdict |
| from enum import Enum |
| from typing import Dict, List, Optional, Any |
| import datetime |
|
|
| class IncidentSeverity(Enum): |
| """Enum for incident severity levels""" |
| LOW = "LOW" |
| MEDIUM = "MEDIUM" |
| HIGH = "HIGH" |
| CRITICAL = "CRITICAL" |
|
|
| class DemoMode(Enum): |
| """Enum for demo modes""" |
| QUICK = "quick" |
| COMPREHENSIVE = "comprehensive" |
| INVESTOR = "investor" |
|
|
| @dataclass |
| class OSSAnalysis: |
| """Structured OSS analysis results""" |
| status: str |
| recommendations: List[str] |
| estimated_time: str |
| engineers_needed: str |
| manual_effort: str |
| confidence_score: float = 0.95 |
| |
| def to_dict(self) -> Dict: |
| return asdict(self) |
|
|
| @dataclass |
| class EnterpriseResults: |
| """Structured enterprise execution results""" |
| actions_completed: List[str] |
| metrics_improvement: Dict[str, str] |
| business_impact: Dict[str, Any] |
| approval_required: bool = True |
| execution_time: str = "" |
| |
| def to_dict(self) -> Dict: |
| return asdict(self) |
|
|
| @dataclass |
| class IncidentScenario: |
| """Pythonic incident scenario model""" |
| name: str |
| severity: IncidentSeverity |
| metrics: Dict[str, str] |
| impact: Dict[str, str] |
| oss_analysis: Optional[OSSAnalysis] = None |
| enterprise_results: Optional[EnterpriseResults] = None |
| |
| def to_dict(self) -> Dict: |
| """Convert to dictionary for JSON serialization""" |
| data = { |
| "name": self.name, |
| "severity": self.severity.value, |
| "metrics": self.metrics, |
| "impact": self.impact |
| } |
| if self.oss_analysis: |
| data["oss_analysis"] = self.oss_analysis.to_dict() |
| if self.enterprise_results: |
| data["enterprise_results"] = self.enterprise_results.to_dict() |
| return data |
|
|
| @dataclass |
| class DemoStep: |
| """Demo step for presenter guidance""" |
| title: str |
| scenario: Optional[str] |
| action: str |
| message: str |
| icon: str = "🎯" |