input: 
  from typing import Dict
  
  class StoreItem:
      def __init__(self, item_id: int, name: str, price: float, description: str):
          self.item_id = item_id
          self.name = name
          self.price = price
          self.description = description
  
      def __str__(self) -> str:
          return f'{self.name}, ${self.price}'
  
      def to_dict(self) -> Dict[str, str]:
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }
  
  # Example usage:
  item = StoreItem(1, 'Laptop', 999.99, 'High-performance laptop')
  print(item)  # Output: Laptop, $999.99
  print(item.to_dict())  # Output: {'item_id': 1, 'name': 'Laptop', 'price': 999.99, 'description': 'High-performance laptop'}
  
output:     
      def from_dict(cls, data: Dict[str, str]) -> 'StoreItem':
          return cls(
              item_id=data['item_id'],
              name=data['name'],
              price=data['price'],
              description=data['description']
          )
  
  # Example usage:
  item_dict = {'item_id': 2, 'name': 'Smartphone', 'price': 499.99, 'description': 'Latest model smartphone'}
  item2 = StoreItem.from_dict(item_dict)
  print(item2)  # Output: Smartphone, $499.99
  print(item2.to_dict())  # Output: {'item_id': 2, 'name': 'Smartphone', 'price': 499.99, 'description': 'Latest model smartphone'}
  