"""
Time Tracker
Generated by Eden via recursive self-improvement
2025-10-28 09:04:58.981970
"""

class TimeTracker:
    def __init__(self):
        self.activities = {}
        self.current_activity = None

    def start_activity(self, name):
        """Start timing the specified activity."""
        if name in self.activities:
            time_spent = self.activities[name]
            new_time = time_spent + datetime.timedelta(seconds=time.time() - time_spent.total_seconds())
            self.activities[name] = new_time
            print(f"Resuming {name}")
        else:
            self.current_activity = name
            self.activities[self.current_activity] = datetime.datetime.now()
            print(f"Started tracking {self.current_activity}")

    def pause_activity(self):
        """Pause the currently running timer."""
        if self.current_activity is None:
            print("No activity is running")
            return
        
        end_time = datetime.datetime.now()
        duration = end_time - self.activities[self.current_activity]
        
        # Add to activities or create a new entry
        if self.current_activity in self.activities:
            # If already tracked, append the time difference
            previous_total = self.activities[self.current_activity]
            total_duration = previous_total + duration
            self.activities[self.current_activity] = total_duration
        else:
            self.activities[self.current_activity] = duration
        
        print(f"Paused {self.current_activity}. Time logged: {duration}")
        self.current_activity = None

    def stop_activity(self, name):
        """Stop tracking the specified activity completely."""
        if name in self.activities:
            del self.activities[name]
            print(f"{name} has been stopped")
        else:
            print(f"{name} is not being tracked")

    def add_activity(self, name, duration):
        """Manually add an activity with a specific duration."""
        if name in self.activities:
            existing_duration = self.activities[name]
            total_duration = existing_duration + datetime.timedelta(seconds=duration)
            self.activities[name] = total_duration
        else:
            self.activities[name] = datetime.timedelta(seconds=duration)
        print(f"Added {name} with {datetime.timedelta(seconds=duration)}")

    def summarize(self):
        """Generate a summary of all tracked activities."""
        if not self.activities:
            print("No tracked activities")
            return
        
        total_time = sum(self.activities.values())
        average_time = total_time / len(self.activities)
        
        sorted_activities = sorted(
            self.activities.items(),
            key=lambda x: x[1],
            reverse=True
        )
        
        print("\nTime Summary:")
        for activity, duration in sorted_activities:
            print(f"{activity}: {duration}")
        print("\nTotal time across all activities: {total_time}")
        print(f"Average time per activity: {average_time}")

# Example usage:
if __name__ == "__main__":
    tracker = TimeTracker()
    
    # Usage examples
    print("Example usage:")
    tracker.start_activity("Reading")  # Starts tracking reading time
    input("Work on reading... Press Enter to pause")
    tracker.pause_activity()  # Pauses the current activity
    
    tracker.start_activity("Coding")  # Starts coding timer
    input("Code for a bit... Press Enter to stop")
    tracker.stop_activity("Coding")  # Stops coding tracking
    
    tracker.add_activity("Meeting", 3600)  # Adds a 1-hour meeting
    
    print("\nSummary:")
    tracker.summarize()  # Shows all tracked activities and their durations