diff --git a/lib/model/KnowledgePanel.dart b/lib/model/KnowledgePanel.dart index e8d8635dda..5bce8a5c91 100644 --- a/lib/model/KnowledgePanel.dart +++ b/lib/model/KnowledgePanel.dart @@ -27,10 +27,15 @@ enum Level { /// /// Client can choose to color code the panel depending on how good/bad the grade is. enum Grade { + @JsonValue('a') A, + @JsonValue('b') B, + @JsonValue('c') C, + @JsonValue('d') D, + @JsonValue('e') E, UNKNOWN, } diff --git a/lib/model/KnowledgePanel.g.dart b/lib/model/KnowledgePanel.g.dart index 1690c48bca..7155c0dc2a 100644 --- a/lib/model/KnowledgePanel.g.dart +++ b/lib/model/KnowledgePanel.g.dart @@ -112,11 +112,11 @@ Map _$TitleElementToJson(TitleElement instance) => }; const _$GradeEnumMap = { - Grade.A: 'A', - Grade.B: 'B', - Grade.C: 'C', - Grade.D: 'D', - Grade.E: 'E', + Grade.A: 'a', + Grade.B: 'b', + Grade.C: 'c', + Grade.D: 'd', + Grade.E: 'e', Grade.UNKNOWN: 'UNKNOWN', }; diff --git a/lib/model/Product.g.dart b/lib/model/Product.g.dart index 6ce8384872..ca4c8b9f43 100644 --- a/lib/model/Product.g.dart +++ b/lib/model/Product.g.dart @@ -100,7 +100,15 @@ Product _$ProductFromJson(Map json) => Product( ? null : EcoscoreData.fromJson( json['ecoscore_data'] as Map), - ); + )..imagesFreshnessInLanguages = + (json['imagesFreshnessInLanguages'] as Map?)?.map( + (k, e) => MapEntry( + _$enumDecode(_$OpenFoodFactsLanguageEnumMap, k), + (e as Map).map( + (k, e) => + MapEntry(_$enumDecode(_$ImageFieldEnumMap, k), e as int), + )), + ); Map _$ProductToJson(Product instance) { final val = { @@ -148,6 +156,9 @@ Map _$ProductToJson(Product instance) { writeNotNull('ingredients_tags', instance.ingredientsTags); writeNotNull('ingredients_tags_in_languages', LanguageHelper.toJsonStringsListMap(instance.ingredientsTagsInLanguages)); + val['imagesFreshnessInLanguages'] = instance.imagesFreshnessInLanguages?.map( + (k, e) => MapEntry(_$OpenFoodFactsLanguageEnumMap[k], + e.map((k, e) => MapEntry(_$ImageFieldEnumMap[k], e)))); writeNotNull('ingredients_analysis_tags', IngredientsAnalysisTags.toJson(instance.ingredientsAnalysisTags)); writeNotNull('nutriments', Nutriments.toJsonHelper(instance.nutriments)); @@ -184,3 +195,226 @@ Map _$ProductToJson(Product instance) { 'ecoscore_data', EcoscoreData.toJsonHelper(instance.ecoscoreData)); return val; } + +K _$enumDecode( + Map enumValues, + Object? source, { + K? unknownValue, +}) { + if (source == null) { + throw ArgumentError( + 'A value must be provided. Supported values: ' + '${enumValues.values.join(', ')}', + ); + } + + return enumValues.entries.singleWhere( + (e) => e.value == source, + orElse: () { + if (unknownValue == null) { + throw ArgumentError( + '`$source` is not one of the supported values: ' + '${enumValues.values.join(', ')}', + ); + } + return MapEntry(unknownValue, enumValues.values.first); + }, + ).key; +} + +const _$ImageFieldEnumMap = { + ImageField.FRONT: 'FRONT', + ImageField.INGREDIENTS: 'INGREDIENTS', + ImageField.NUTRITION: 'NUTRITION', + ImageField.PACKAGING: 'PACKAGING', + ImageField.OTHER: 'OTHER', +}; + +const _$OpenFoodFactsLanguageEnumMap = { + OpenFoodFactsLanguage.ENGLISH: 'ENGLISH', + OpenFoodFactsLanguage.OLD_CHURCH_SLAVONIC: 'OLD_CHURCH_SLAVONIC', + OpenFoodFactsLanguage.DZONGKHA_LANGUAGE: 'DZONGKHA_LANGUAGE', + OpenFoodFactsLanguage.JAPANESE: 'JAPANESE', + OpenFoodFactsLanguage.MALAY: 'MALAY', + OpenFoodFactsLanguage.TAGALOG: 'TAGALOG', + OpenFoodFactsLanguage.MOLDOVAN: 'MOLDOVAN', + OpenFoodFactsLanguage.KOREAN: 'KOREAN', + OpenFoodFactsLanguage.LUBA_KATANGA_LANGUAGE: 'LUBA_KATANGA_LANGUAGE', + OpenFoodFactsLanguage.KAZAKH: 'KAZAKH', + OpenFoodFactsLanguage.QUECHUA_LANGUAGES: 'QUECHUA_LANGUAGES', + OpenFoodFactsLanguage.UKRAINIAN: 'UKRAINIAN', + OpenFoodFactsLanguage.OCCITAN: 'OCCITAN', + OpenFoodFactsLanguage.BIHARI_LANGUAGES: 'BIHARI_LANGUAGES', + OpenFoodFactsLanguage.SOUTHERN_NDEBELE: 'SOUTHERN_NDEBELE', + OpenFoodFactsLanguage.BOKMAL: 'BOKMAL', + OpenFoodFactsLanguage.KOMI: 'KOMI', + OpenFoodFactsLanguage.MODERN_GREEK: 'MODERN_GREEK', + OpenFoodFactsLanguage.FIJIAN_LANGUAGE: 'FIJIAN_LANGUAGE', + OpenFoodFactsLanguage.ZULU: 'ZULU', + OpenFoodFactsLanguage.IDO: 'IDO', + OpenFoodFactsLanguage.KHMER: 'KHMER', + OpenFoodFactsLanguage.SANSKRIT: 'SANSKRIT', + OpenFoodFactsLanguage.MACEDONIAN: 'MACEDONIAN', + OpenFoodFactsLanguage.SOTHO: 'SOTHO', + OpenFoodFactsLanguage.SCOTTISH_GAELIC: 'SCOTTISH_GAELIC', + OpenFoodFactsLanguage.MARATHI: 'MARATHI', + OpenFoodFactsLanguage.NAURUAN: 'NAURUAN', + OpenFoodFactsLanguage.OROMO: 'OROMO', + OpenFoodFactsLanguage.WELSH: 'WELSH', + OpenFoodFactsLanguage.VIETNAMESE: 'VIETNAMESE', + OpenFoodFactsLanguage.BISLAMA: 'BISLAMA', + OpenFoodFactsLanguage.SOMALI: 'SOMALI', + OpenFoodFactsLanguage.LITHUANIAN: 'LITHUANIAN', + OpenFoodFactsLanguage.HAITIAN_CREOLE: 'HAITIAN_CREOLE', + OpenFoodFactsLanguage.MALAGASY: 'MALAGASY', + OpenFoodFactsLanguage.SPANISH: 'SPANISH', + OpenFoodFactsLanguage.DANISH: 'DANISH', + OpenFoodFactsLanguage.SLOVENE: 'SLOVENE', + OpenFoodFactsLanguage.ICELANDIC: 'ICELANDIC', + OpenFoodFactsLanguage.ESTONIAN: 'ESTONIAN', + OpenFoodFactsLanguage.WOLOF: 'WOLOF', + OpenFoodFactsLanguage.HIRI_MOTU: 'HIRI_MOTU', + OpenFoodFactsLanguage.TAMIL: 'TAMIL', + OpenFoodFactsLanguage.SLOVAK: 'SLOVAK', + OpenFoodFactsLanguage.HERERO: 'HERERO', + OpenFoodFactsLanguage.ITALIAN: 'ITALIAN', + OpenFoodFactsLanguage.IRISH: 'IRISH', + OpenFoodFactsLanguage.SHONA: 'SHONA', + OpenFoodFactsLanguage.MARSHALLESE: 'MARSHALLESE', + OpenFoodFactsLanguage.FRENCH: 'FRENCH', + OpenFoodFactsLanguage.AYMARA: 'AYMARA', + OpenFoodFactsLanguage.HEBREW: 'HEBREW', + OpenFoodFactsLanguage.NORTHERN_SAMI: 'NORTHERN_SAMI', + OpenFoodFactsLanguage.BENGALI: 'BENGALI', + OpenFoodFactsLanguage.ODIA: 'ODIA', + OpenFoodFactsLanguage.MALAYALAM: 'MALAYALAM', + OpenFoodFactsLanguage.DUTCH: 'DUTCH', + OpenFoodFactsLanguage.UYGHUR: 'UYGHUR', + OpenFoodFactsLanguage.SERBIAN: 'SERBIAN', + OpenFoodFactsLanguage.TIBETAN_LANGUAGE: 'TIBETAN_LANGUAGE', + OpenFoodFactsLanguage.BELARUSIAN: 'BELARUSIAN', + OpenFoodFactsLanguage.SAMOAN: 'SAMOAN', + OpenFoodFactsLanguage.PUNJABI: 'PUNJABI', + OpenFoodFactsLanguage.RUSSIAN: 'RUSSIAN', + OpenFoodFactsLanguage.TAHITIAN: 'TAHITIAN', + OpenFoodFactsLanguage.INTERLINGUA: 'INTERLINGUA', + OpenFoodFactsLanguage.AFAR: 'AFAR', + OpenFoodFactsLanguage.GREENLANDIC: 'GREENLANDIC', + OpenFoodFactsLanguage.LATIN: 'LATIN', + OpenFoodFactsLanguage.CHINESE: 'CHINESE', + OpenFoodFactsLanguage.TURKMEN: 'TURKMEN', + OpenFoodFactsLanguage.WEST_FRISIAN: 'WEST_FRISIAN', + OpenFoodFactsLanguage.TSONGA: 'TSONGA', + OpenFoodFactsLanguage.ROMANSH: 'ROMANSH', + OpenFoodFactsLanguage.INUPIAT_LANGUAGE: 'INUPIAT_LANGUAGE', + OpenFoodFactsLanguage.TAJIK: 'TAJIK', + OpenFoodFactsLanguage.BURMESE: 'BURMESE', + OpenFoodFactsLanguage.JAVANESE: 'JAVANESE', + OpenFoodFactsLanguage.CHECHEN: 'CHECHEN', + OpenFoodFactsLanguage.ASSAMESE: 'ASSAMESE', + OpenFoodFactsLanguage.UNKNOWN_LANGUAGE: 'UNKNOWN_LANGUAGE', + OpenFoodFactsLanguage.ARABIC: 'ARABIC', + OpenFoodFactsLanguage.KINYARWANDA: 'KINYARWANDA', + OpenFoodFactsLanguage.TONGAN_LANGUAGE: 'TONGAN_LANGUAGE', + OpenFoodFactsLanguage.CHURCH_SLAVONIC: 'CHURCH_SLAVONIC', + OpenFoodFactsLanguage.SINHALA: 'SINHALA', + OpenFoodFactsLanguage.ARMENIAN: 'ARMENIAN', + OpenFoodFactsLanguage.KURDISH: 'KURDISH', + OpenFoodFactsLanguage.THAI: 'THAI', + OpenFoodFactsLanguage.CREE: 'CREE', + OpenFoodFactsLanguage.SWAHILI: 'SWAHILI', + OpenFoodFactsLanguage.GUJARATI: 'GUJARATI', + OpenFoodFactsLanguage.PERSIAN: 'PERSIAN', + OpenFoodFactsLanguage.BOSNIAN: 'BOSNIAN', + OpenFoodFactsLanguage.AMHARIC: 'AMHARIC', + OpenFoodFactsLanguage.ARAGONESE: 'ARAGONESE', + OpenFoodFactsLanguage.CROATIAN: 'CROATIAN', + OpenFoodFactsLanguage.CHEWA: 'CHEWA', + OpenFoodFactsLanguage.ZHUANG_LANGUAGES: 'ZHUANG_LANGUAGES', + OpenFoodFactsLanguage.LINGALA_LANGUAGE: 'LINGALA_LANGUAGE', + OpenFoodFactsLanguage.BAMBARA: 'BAMBARA', + OpenFoodFactsLanguage.LIMBURGISH_LANGUAGE: 'LIMBURGISH_LANGUAGE', + OpenFoodFactsLanguage.NUOSU_LANGUAGE: 'NUOSU_LANGUAGE', + OpenFoodFactsLanguage.KWANYAMA: 'KWANYAMA', + OpenFoodFactsLanguage.KIRUNDI: 'KIRUNDI', + OpenFoodFactsLanguage.EWE: 'EWE', + OpenFoodFactsLanguage.FAROESE: 'FAROESE', + OpenFoodFactsLanguage.SINDHI: 'SINDHI', + OpenFoodFactsLanguage.CORSICAN: 'CORSICAN', + OpenFoodFactsLanguage.KANNADA: 'KANNADA', + OpenFoodFactsLanguage.NORWEGIAN: 'NORWEGIAN', + OpenFoodFactsLanguage.SUNDANESE_LANGUAGE: 'SUNDANESE_LANGUAGE', + OpenFoodFactsLanguage.GEORGIAN: 'GEORGIAN', + OpenFoodFactsLanguage.HAUSA: 'HAUSA', + OpenFoodFactsLanguage.TSWANA: 'TSWANA', + OpenFoodFactsLanguage.CATALAN: 'CATALAN', + OpenFoodFactsLanguage.NDONGA_DIALECT: 'NDONGA_DIALECT', + OpenFoodFactsLanguage.IGBO_LANGUAGE: 'IGBO_LANGUAGE', + OpenFoodFactsLanguage.AFRIKAANS: 'AFRIKAANS', + OpenFoodFactsLanguage.POLISH: 'POLISH', + OpenFoodFactsLanguage.KASHMIRI: 'KASHMIRI', + OpenFoodFactsLanguage.MAORI: 'MAORI', + OpenFoodFactsLanguage.HUNGARIAN: 'HUNGARIAN', + OpenFoodFactsLanguage.BRETON: 'BRETON', + OpenFoodFactsLanguage.PORTUGUESE: 'PORTUGUESE', + OpenFoodFactsLanguage.BULGARIAN: 'BULGARIAN', + OpenFoodFactsLanguage.AVESTAN: 'AVESTAN', + OpenFoodFactsLanguage.NEPALI: 'NEPALI', + OpenFoodFactsLanguage.TWI: 'TWI', + OpenFoodFactsLanguage.UZBEK: 'UZBEK', + OpenFoodFactsLanguage.CHAMORRO: 'CHAMORRO', + OpenFoodFactsLanguage.GUARANI: 'GUARANI', + OpenFoodFactsLanguage.NYNORSK: 'NYNORSK', + OpenFoodFactsLanguage.AZERBAIJANI: 'AZERBAIJANI', + OpenFoodFactsLanguage.CZECH: 'CZECH', + OpenFoodFactsLanguage.NAVAJO: 'NAVAJO', + OpenFoodFactsLanguage.FINNISH: 'FINNISH', + OpenFoodFactsLanguage.LUXEMBOURGISH: 'LUXEMBOURGISH', + OpenFoodFactsLanguage.SWEDISH: 'SWEDISH', + OpenFoodFactsLanguage.YIDDISH: 'YIDDISH', + OpenFoodFactsLanguage.INUKTITUT: 'INUKTITUT', + OpenFoodFactsLanguage.LAO: 'LAO', + OpenFoodFactsLanguage.CHUVASH: 'CHUVASH', + OpenFoodFactsLanguage.MALTESE: 'MALTESE', + OpenFoodFactsLanguage.MALDIVIAN_LANGUAGE: 'MALDIVIAN_LANGUAGE', + OpenFoodFactsLanguage.INTERLINGUE: 'INTERLINGUE', + OpenFoodFactsLanguage.OSSETIAN: 'OSSETIAN', + OpenFoodFactsLanguage.BASHKIR: 'BASHKIR', + OpenFoodFactsLanguage.OJIBWE: 'OJIBWE', + OpenFoodFactsLanguage.KANURI: 'KANURI', + OpenFoodFactsLanguage.INDONESIAN: 'INDONESIAN', + OpenFoodFactsLanguage.SARDINIAN_LANGUAGE: 'SARDINIAN_LANGUAGE', + OpenFoodFactsLanguage.AKAN: 'AKAN', + OpenFoodFactsLanguage.MANX: 'MANX', + OpenFoodFactsLanguage.TURKISH: 'TURKISH', + OpenFoodFactsLanguage.ESPERANTO: 'ESPERANTO', + OpenFoodFactsLanguage.PASHTO: 'PASHTO', + OpenFoodFactsLanguage.KYRGYZ: 'KYRGYZ', + OpenFoodFactsLanguage.VOLAPUK: 'VOLAPUK', + OpenFoodFactsLanguage.AVAR: 'AVAR', + OpenFoodFactsLanguage.SANGO: 'SANGO', + OpenFoodFactsLanguage.VENDA: 'VENDA', + OpenFoodFactsLanguage.ALBANIAN: 'ALBANIAN', + OpenFoodFactsLanguage.BASQUE: 'BASQUE', + OpenFoodFactsLanguage.FULA_LANGUAGE: 'FULA_LANGUAGE', + OpenFoodFactsLanguage.GERMAN: 'GERMAN', + OpenFoodFactsLanguage.LATVIAN: 'LATVIAN', + OpenFoodFactsLanguage.CORNISH: 'CORNISH', + OpenFoodFactsLanguage.PALI: 'PALI', + OpenFoodFactsLanguage.TATAR: 'TATAR', + OpenFoodFactsLanguage.ROMANIAN: 'ROMANIAN', + OpenFoodFactsLanguage.GIKUYU: 'GIKUYU', + OpenFoodFactsLanguage.TIGRINYA: 'TIGRINYA', + OpenFoodFactsLanguage.GALICIAN: 'GALICIAN', + OpenFoodFactsLanguage.TELUGU: 'TELUGU', + OpenFoodFactsLanguage.HINDI: 'HINDI', + OpenFoodFactsLanguage.KONGO_LANGUAGE: 'KONGO_LANGUAGE', + OpenFoodFactsLanguage.XHOSA: 'XHOSA', + OpenFoodFactsLanguage.SWAZI: 'SWAZI', + OpenFoodFactsLanguage.LUGANDA: 'LUGANDA', + OpenFoodFactsLanguage.URDU: 'URDU', + OpenFoodFactsLanguage.NORTHERN_NDEBELE_LANGUAGE: 'NORTHERN_NDEBELE_LANGUAGE', + OpenFoodFactsLanguage.YORUBA: 'YORUBA', + OpenFoodFactsLanguage.WORLD: 'WORLD', + OpenFoodFactsLanguage.UNDEFINED: 'UNDEFINED', +};