code: def get_item_sh(self, item, roles=None, date_field=None):
          
  
          eitem_sh = {}  # Item enriched
  
          author_field = self.get_field_author()
  
          if not roles:
              roles = [author_field]
  
          if not date_field:
              item_date = str_to_datetime(item[self.get_field_date()])
          else:
              item_date = str_to_datetime(item[date_field])
  
          users_data = self.get_users_data(item)
  
          for rol in roles:
              if rol in users_data:
                  identity = self.get_sh_identity(item, rol)
                  eitem_sh.update(self.get_item_sh_fields(identity, item_date, rol=rol))
  
                  if not eitem_sh[rol + '_org_name']:
                      eitem_sh[rol + '_org_name'] = SH_UNKNOWN_VALUE
  
                  if not eitem_sh[rol + '_name']:
                      eitem_sh[rol + '_name'] = SH_UNKNOWN_VALUE
  
                  if not eitem_sh[rol + '_user_name']:
                      eitem_sh[rol + '_user_name'] = SH_UNKNOWN_VALUE
  
          # Add the author field common in all data sources
          rol_author = 'author'
          if author_field in users_data and author_field != rol_author:
              identity = self.get_sh_identity(item, author_field)
              eitem_sh.update(self.get_item_sh_fields(identity, item_date, rol=rol_author))
  
              if not eitem_sh['author_org_name']:
                  eitem_sh['author_org_name'] = SH_UNKNOWN_VALUE
  
              if not eitem_sh['author_name']:
                  eitem_sh['author_name'] = SH_UNKNOWN_VALUE
  
              if not eitem_sh['author_user_name']:
                  eitem_sh['author_user_name'] = SH_UNKNOWN_VALUE
  
          return eitem_sh
docs: Add sorting hat enrichment fields for different roles
  
          If there are no roles, just add the author fields.