'array', 'nutritional_values' => 'array', ]; /** * The Laravel disk name * * @var string */ protected static $disk = 'inco'; /** * Storage path * * @var string */ protected static $imagesPath = 'images'; // * METHODS /** * Get xml inco picture path * * @param string $pictureName * @return null|string */ public static function getXmlIncoPicturePath(string $pictureName): ?string { $disk = static::getDisk(); $picturePath = static::$imagesPath . "/{$pictureName}"; return $disk->exists($picturePath) ? $picturePath : null; } /** * Getter media list retrieve a collection of medias * * @return \Illuminate\Support\Collection Indexes are filename and imgdata. */ public function getMediaListAttribute(): Collection { $disk = static::getDisk(); /** @var \Illuminate\Support\Collection */ $collFiles = new Collection(); foreach ($this->pictures as $pictureName) { $collFiles->add([ 'filename' => $pictureName, 'imgdata' => base64_encode($disk->get( static::$imagesPath . "/{$pictureName}" )) ]); } return $collFiles; } /** * Get the concerned disk * * @return \Illuminate\Contracts\Filesystem\Filesystem */ public static function getDisk(): Filesystem { return Storage::disk(static::$disk); } /** * Getter nice_string attribute * * @return string */ public function getNiceStringAttribute() { return sprintf('%s - %s', $this->id, $this->descriptif); } /** * Translate Data to compatible minicrud inputs for product * * @return array * @throws \RuntimeException If a product minicrud input is not handled for translation. */ public function translateToProductIncoInputs(): array { return \collect(DefaultProductType::incoInputs())->keys() ->mapWithKeys(function (string $key) { switch ($key) { case 'ingredients': return [$key => \strval($this->lst_ing)]; case 'preparation_advices': return [$key => \strval($this->conseil_prepa)]; case 'allergens': return [$key => \strval($this->lib_allergene)]; case 'selling_arguments': return [$key => \strval($this->arg_vente)]; case 'servings': return [$key => \strval($this->nb_portion)]; case 'servings_type': return [$key => \strval($this->typ_portion)]; default: throw new \RuntimeException('Unhandled product minicrud input'); } })->all(); } /** * Fetch nutritional Values * * @return object|null */ public function fetchIncoNutritionalValues(): ?object { $nutri_values = $this->nutritional_values; if (empty($nutri_values)) { return null; } $nutri_values = \collect($nutri_values); return (object)[ // Pour la ref. 'nv_ref_weight_g' => $nutri_values->get('taille_ref'), // Energie Kj. 'nv_kj' => $nutri_values->get('val_energ_kj_r'), // Energie Kcal. 'nv_kcal' => $nutri_values->get('val_energ_kcal_r'), // Graisses. 'nv_fat_g' => $nutri_values->get('mat_grass_r'), // Dont acides gras saturés. 'nv_sat_fat_g' => $nutri_values->get('ags_r'), // Glucides. 'nv_carb_g' => $nutri_values->get('glucides_r'), // Dont sucres. 'nv_sugar_g' => $nutri_values->get('sucre_r'), // Fibres alimentaires. 'nv_fiber_g' => $nutri_values->get('fib_alim_r'), // Protéines. 'nv_protein_g' => $nutri_values->get('proteine_r'), // Sel. 'nv_salt_g' => $nutri_values->get('sel_r'), /** Autres valeurs dispos * $nutri_values["sodium_r"]; * $nutri_values["ener_e14_r"]; * $nutri_values["fruits_r"]; * $nutri_values["fruits_coque_sech_r"]; * $nutri_values["ener_kjo_r"]; * $nutri_values["fatsat_r"]; * $nutri_values["choval_r"]; * $nutri_values["sugar_r"]; * $nutri_values["fibtg_r"]; * $nutri_values["pro_r"]; * $nutri_values["salteq_r"]; */ // * Valeurs nutritionnelles par portion. // Taille portion en grammes. 'nv_serving_size_g' => $nutri_values->get('taille_port'), // Energie Kj. 'nv_serving_kj' => $nutri_values->get('val_energ_kj_p'), // Energie Kcal. 'nv_serving_kcal' => $nutri_values->get('val_energ_kcal_p'), // Graisses. 'nv_serving_fat_g' => $nutri_values->get('mat_grass_p'), // Dont acides gras saturés. 'nv_serving_sat_fat_g' => $nutri_values->get('ags_p'), // Glucides. 'nv_serving_carb_g' => $nutri_values->get('glucides_p'), // Dont sucres. 'nv_serving_sugar_g' => $nutri_values->get('sucre_p'), // Fibres alimentaires. 'nv_serving_fiber_g' => $nutri_values->get('fib_alim_p'), // Protéines. 'nv_serving_protein_g' => $nutri_values->get('proteine_p'), // Sel. 'nv_serving_salt_g' => $nutri_values->get('sel_p'), /** * autres valeurs disponibles * $nutri_values["sodium_p"]; * $nutri_values["fruits_p"]; */ // * Apports journaliers. // Energie % recommandé. 'nv_daily_energy' => $nutri_values->get('pourcent_apport_ref_kjo_r'), // Graisses. 'nv_daily_fat' => $nutri_values->get('pourcent_apport_ref_fat_r'), // Dont acides gras saturés. 'nv_daily_sat_fat' => $nutri_values->get('pourcent_apport_ref_fatsat_r'), // Glucides. 'nv_daily_carb' => $nutri_values->get('pourcent_apport_ref_choval_r'), // Dont sucres. 'nv_daily_sugar' => $nutri_values->get('pourcent_apport_ref_sugar_r'), // Fibres alimentaires. 'nv_daily_fiber' => $nutri_values->get('pourcent_apport_ref_fibtg_r'), // Protéines. 'nv_daily_protein' => $nutri_values->get('pourcent_apport_ref_pro_r'), // Sel. 'nv_daily_salt' => $nutri_values->get('pourcent_apport_ref_salteq_r'), /** * Autre valeur dispo * $nutri_values["pourcent_apport_ref_e14_r"] */ // * Nutriscore. 'nutriscore' => $nutri_values->get('classement'), 'nutriscore_args' => '', /** * Infos n'ayant pas de mapping * * $nutri_values["val_energ_kj_nut"]; * $nutri_values["val_energ_kcal_nut"]; * $nutri_values["mat_grass_nut"]; * $nutri_values["ags_nut"]; * $nutri_values["glucides_nut"]; * $nutri_values["sucre_nut"]; * $nutri_values["sucre_r"]; * $nutri_values["fib_alim_nut"]; * $nutri_values["proteine_nut"]; * $nutri_values["sel_nut"]; * $nutri_values["apport_ref"]; * $nutri_values["fruits_coque_sech_p"]; * $nutri_values["ener_e14_p"]; * $nutri_values["pourcent_apport_ref_e14_p"]; * $nutri_values["ener_kjo_p"]; * $nutri_values["pourcent_apport_ref_kjo_p"]; * $nutri_values["fat_p"]; * $nutri_values["pourcent_apport_ref_fat_p"]; * $nutri_values["fatsat_p"]; * $nutri_values["pourcent_apport_ref_fatsat_p"]; * $nutri_values["choval_p"]; * $nutri_values["pourcent_apport_ref_choval_p"]; * $nutri_values["sugar_p"]; * $nutri_values["pourcent_apport_ref_sugar_p"]; * $nutri_values["fibtg_p"]; * $nutri_values["pourcent_apport_ref_fibtg_p"]; * $nutri_values["pro_p"]; * $nutri_values["pourcent_apport_ref_pro_p"]; * $nutri_values["salteq_p"]; * $nutri_values["pourcent_apport_ref_salteq_p"]; * $nutri_values["apport_port"]; * $nutri_values["part_p"]; * $nutri_values["part_g"]; * $nutri_values["part_l"]; * $nutri_values["p_sur_l"]; * $nutri_values["pourcent_ags"]; * $nutri_values["pourcent_agi"]; * $nutri_values["pourcent_ss"]; * $nutri_values["pourcent_amidon"]; * $nutri_values["composante_n"]; * $nutri_values["composante_p"]; * $nutri_values["pourcent_fruits"]; * $nutri_values["mat_grass_r_prec"]; * $nutri_values["ags_r_prec"]; * $nutri_values["glucides_r_prec"]; * $nutri_values["sucre_r_prec"]; * $nutri_values["fib_alim_r_prec"]; * $nutri_values["proteine_r_prec"]; * $nutri_values["sel_r_prec"]; * $nutri_values["sodium_r_prec"]; * $nutri_values["fruits_r_prec"]; * $nutri_values["fruits_coque_sech_r_prec"]; * $nutri_values["score_nutri"]; */ ]; } }