mirror of https://github.com/kcal-app/kcal.git
Refactor nutrients units array as Collection
This commit is contained in:
parent
9571454175
commit
51d4db11c6
|
@ -97,7 +97,7 @@ class JournalEntryController extends Controller
|
|||
return view('journal-entries.create')
|
||||
->with('ingredients', $ingredients)
|
||||
->with('meals', JournalEntry::$meals)
|
||||
->with('units', Nutrients::$units)
|
||||
->with('units', Nutrients::units()->toArray())
|
||||
->with('default_date', Carbon::createFromFormat('Y-m-d', $date));
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ class JournalEntryController extends Controller
|
|||
$date = $request->date ?? Carbon::now()->toDateString();
|
||||
return view('journal-entries.create-from-nutrients')
|
||||
->with('meals', JournalEntry::$meals)
|
||||
->with('units', Nutrients::$units)
|
||||
->with('units', Nutrients::units()->toArray())
|
||||
->with('default_date', Carbon::createFromFormat('Y-m-d', $date));
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ class RecipeController extends Controller
|
|||
->with('recipe_tags', $recipe_tags)
|
||||
->with('ingredients_list', new Collection([...$ingredients, ...$separators]))
|
||||
->with('steps', $steps)
|
||||
->with('ingredients_units', Nutrients::$units);
|
||||
->with('ingredients_units', Nutrients::units()->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,14 +10,43 @@ class Nutrients
|
|||
{
|
||||
public static float $gramsPerOunce = 28.349523125;
|
||||
|
||||
public static array $units = [
|
||||
'cup' => ['value' => 'cup', 'label' => 'cup'],
|
||||
'gram' => ['value' => 'gram', 'label' => 'grams'],
|
||||
'oz' => ['value' => 'oz', 'label' => 'oz'],
|
||||
'serving' => ['value' => 'serving', 'label' => 'servings'],
|
||||
'tbsp' => ['value' => 'tbsp', 'label' => 'tbsp.'],
|
||||
'tsp' => ['value' => 'tsp', 'label' => 'tsp.'],
|
||||
];
|
||||
/**
|
||||
* Get all supported units and metadata.
|
||||
*
|
||||
* Each entry has two keys:
|
||||
* - value: Machine name for the unit.
|
||||
* - label: Human-readable name for the unit.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public static function units(): Collection {
|
||||
return new Collection([
|
||||
'cup' => [
|
||||
'value' => 'cup',
|
||||
'label' => 'cup'
|
||||
],
|
||||
'gram' => [
|
||||
'value' => 'gram',
|
||||
'label' => 'gram'
|
||||
],
|
||||
'oz' => [
|
||||
'value' => 'oz',
|
||||
'label' => 'oz'
|
||||
],
|
||||
'serving' => [
|
||||
'value' => 'serving',
|
||||
'label' => 'serving'
|
||||
],
|
||||
'tbsp' => [
|
||||
'value' => 'tbsp',
|
||||
'label' => 'tbsp.'
|
||||
],
|
||||
'tsp' => [
|
||||
'value' => 'tsp',
|
||||
'label' => 'tsp.'
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all trackable "nutrients" (calories are not technically a nutrient).
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Support\Nutrients;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
@ -18,7 +19,7 @@ class CreateIngredientAmountsTable extends Migration
|
|||
$table->unsignedInteger('ingredient_id');
|
||||
$table->string('ingredient_type');
|
||||
$table->unsignedFloat('amount');
|
||||
$table->enum('unit', ['tsp', 'tbsp', 'cup', 'oz', 'gram', 'serving'])->nullable();
|
||||
$table->enum('unit', Nutrients::units()->pluck('value')->toArray())->nullable();
|
||||
$table->string('detail')->nullable();
|
||||
$table->unsignedInteger('weight');
|
||||
$table->unsignedInteger('parent_id')->index();
|
||||
|
|
Loading…
Reference in New Issue