input: Write a function to generate a Python class for an online store item that includes fields for ID, name, price, and description. The class should have an initializer method `__init__` to set these fields and a `__str__` method to return a string representation of the item in the format "name, $price". Additionally, it should have a `to_dict` method that returns a dictionary representation of the item with keys 'item_id', 'name', 'price', and 'description'.
  
  assert StoreItem(1, 'Laptop', 999.99, 'High-performance laptop').__str__() == 'Laptop, $999.99'
  assert StoreItem(2, 'Keyboard', 49.99, 'Ergonomic keyboard').__str__() == 'Keyboard, $49.99'
  assert StoreItem(3, 'Mouse', 29.95, 'Wireless mouse').to_dict() == {'item_id': 3, 'name': 'Mouse', 'price': 29.95, 'description': 'Wireless mouse'}
  assert StoreItem(4, 'Monitor', 249.00, '24-inch monitor').to_dict() == {'item_id': 4, 'name': 'Monitor', 'price': 249.0, 'description': '24-inch monitor'}
output: class StoreItem:
      def __init__(self, item_id, name, price, description):
          self.item_id = item_id
          self.name = name
          self.price = price
          self.description = description
  
      def __str__(self):
          return f"{self.name}, ${self.price:.2f}"
  
      def to_dict(self):
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }