input: Write a function that generates a Python class for an online store item with fields for ID, name, price, and description, including methods for string representation and conversion to dictionary format. 
  
  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}'
  
      def to_dict(self):
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }
  
  assert str(StoreItem('001', 'Apple', 1.5, 'Fresh apple')) == 'Apple, $1.5'
  assert StoreItem('001', 'Apple', 1.5, 'Fresh apple').to_dict() == {'item_id': '001', 'name': 'Apple', 'price': 1.5, 'description': 'Fresh apple'}
  assert str(StoreItem('002', 'Orange', 2.0, 'Juicy orange')) == 'Orange, $2.0'
  assert StoreItem('002', 'Orange', 2.0, 'Juicy orange').to_dict() == {'item_id': '002', 'name': 'Orange', 'price': 2.0, 'description': 'Juicy orange'}
  assert str(StoreItem('003', 'Banana', 0.5, 'Ripe banana')) == 'Banana, $0.5'
  assert StoreItem('003', 'Banana', 0.5, 'Ripe banana').to_dict() == {'item_id': '003', 'name': 'Banana', 'price': 0.5, 'description': 'Ripe banana'}
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}'
  
      def to_dict(self):
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }