'Returns an Elasticsearch mapping for this MappingType'

@classmethod
def get_mapping(cls):

    doc_type = cls.get_mapping_type_name()
    mapping = {doc_type: {'_all': {'enabled': False}, 'properties': {'id': {'type': 'long'}, 'category': cls.string_not_analyzed(), 'created': {'type': 'date', 'format': 'dateOptionalTime'}, 'description': {'type': 'string', 'analyzer': 'default_icu', 'position_offset_gap': 100}, 'default_locale': cls.string_not_indexed(), 'device': {'type': 'byte'}, 'developer_name': {'type': 'string', 'analyzer': 'default_icu', 'position_offset_gap': 100}, 'icon_hash': cls.string_not_indexed(), 'icon_type': cls.string_not_indexed(), 'is_disabled': {'type': 'boolean'}, 'last_updated': {'format': 'dateOptionalTime', 'type': 'date'}, 'mobile_url': cls.string_not_indexed(), 'tv_url': cls.string_not_indexed(), 'tv_featured': {'type': 'short'}, 'modified': {'type': 'date', 'format': 'dateOptionalTime'}, 'name': {'type': 'string', 'analyzer': 'default_icu', 'position_offset_gap': 100, 'fields': {'raw': cls.string_not_analyzed(position_offset_gap=100)}}, 'name_sort': cls.string_not_analyzed(doc_values=True), 'preferred_regions': {'type': 'short'}, 'promo_img_hash': cls.string_not_indexed(), 'reviewed': {'format': 'dateOptionalTime', 'type': 'date', 'doc_values': True}, 'short_name': {'type': 'string', 'analyzer': 'default_icu'}, 'status': {'type': 'byte'}, 'tags': cls.string_not_analyzed(), 'title': {'type': 'string', 'analyzer': 'default_icu', 'position_offset_gap': 100}, 'url': cls.string_not_analyzed(), 'url_tokenized': {'type': 'string', 'analyzer': 'simple'}}}}
    cls.attach_boost_mapping(mapping)
    cls.attach_trending_and_popularity_mappings(mapping)
    cls.attach_translation_mappings(mapping, cls.translated_fields)
    cls.attach_language_specific_analyzers(mapping, cls.fields_with_language_analyzers)
    return mapping
