"""
MessageCategorizer
Generated by Eden via recursive self-improvement
2025-11-02 05:20:29.586875
"""

import re

class MessageCategorizer:
    def __init__(self):
        # Define categories and corresponding keywords for each category
        self.categories = {
            'inquiry': ['help', 'support', 'question'],
            'bug_report': ['error', 'crash', 'issue'],
            'feature_request': ['suggest', 'add', 'enhance']
        }

    def categorize_message(self, message):
        """
        Categorizes an incoming outreach message into one of the predefined categories.

        :param message: The text content of the message.
        :return: A string representing the category ('inquiry', 'bug_report', or 'feature_request').
        """
        for category, keywords in self.categories.items():
            # Check if any keyword from the current category is present in the message
            if any(re.search(r'\b' + re.escape(keyword) + r'\b', message, re.IGNORECASE) for keyword in keywords):
                return category
        return 'unknown'

    def process_outreach_messages(self, messages):
        """
        Processes a list of outreach messages and categorizes them.

        :param messages: A list of strings representing the text content of the messages.
        :return: A dictionary mapping categories to lists of messages that fall under those categories.
        """
        categorized_messages = {category: [] for category in self.categories}
        for message in messages:
            category = self.categorize_message(message)
            if category != 'unknown':
                categorized_messages[category].append(message)
        return categorized_messages

# Example usage
if __name__ == "__main__":
    # Simulate some outreach messages
    messages = [
        "I'm having trouble with my account, can you help me?",
        "Can you add more customization options to the UI?",
        "There's a bug in the game that crashes when I try to save.",
        "Do you have any plans for expanding the game?"
    ]

    categorizer = MessageCategorizer()
    categorized_messages = categorizer.process_outreach_messages(messages)

    print("Inquiry messages:")
    for message in categorized_messages['inquiry']:
        print(message)

    print("\nFeature request messages:")
    for message in categorized_messages['feature_request']:
        print(message)

    print("\nBug report messages:")
    for message in categorized_messages['bug_report']:
        print(message)