From 53ec0d09c330e97064b45e5c6a608a9575fb8035 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sun, 1 Feb 2026 08:27:30 +0000 Subject: [PATCH] Add models and data structures --- src/models/data_structures.py | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/src/models/data_structures.py b/src/models/data_structures.py index 91c5efb..10d8377 100644 --- a/src/models/data_structures.py +++ b/src/models/data_structures.py @@ -22,31 +22,24 @@ class Commit: """Represents a git commit.""" sha: str message: str - author_name: str + author: str author_email: str - committed_datetime: datetime - author_datetime: datetime - parents: List[str] = field(default_factory=list) - additions: int = 0 - deletions: int = 0 + timestamp: datetime + lines_added: int = 0 + lines_deleted: int = 0 files_changed: List[str] = field(default_factory=list) - file_changes: List["FileChange"] = field(default_factory=list) is_merge: bool = False is_revert: bool = False - @property - def timestamp(self) -> datetime: - return self.committed_datetime - @dataclass_json @dataclass class FileChange: """Represents changes to a file in a commit.""" filepath: str - additions: int - deletions: int - changes: int = 0 + lines_added: int + lines_deleted: int + change_type: str @dataclass_json @@ -97,15 +90,3 @@ class VelocityAnalysis: top_contributors: List[Author] most_active_day: str most_active_hour: str - - -@dataclass_json -@dataclass -class ProductivityReport: - """Comprehensive productivity report.""" - repository_path: str - analysis_days: int - commit_analysis: Optional[CommitAnalysis] - code_churn_analysis: Optional[CodeChurnAnalysis] - risky_commit_analysis: Optional[RiskyCommitAnalysis] - velocity_analysis: Optional[VelocityAnalysis]