mirror of https://github.com/kcal-app/kcal.git
Set default meals during migration
This commit is contained in:
parent
be6485372d
commit
eca41e89db
|
|
@ -9,6 +9,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
|||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Spatie\MediaLibrary\HasMedia;
|
||||
use Spatie\MediaLibrary\InteractsWithMedia;
|
||||
|
|
@ -89,6 +90,22 @@ final class User extends Authenticatable implements HasMedia
|
|||
'meals' => AsCollection::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the default meals structure.
|
||||
*/
|
||||
public static function getDefaultMeals(): Collection {
|
||||
$meals = new Collection();
|
||||
for ($i = 0; $i <= 7; $i++) {
|
||||
$meals->add([
|
||||
'value' => $i,
|
||||
'label' => 'Meal ' . ($i + 1),
|
||||
'weight' => $i,
|
||||
'active' => $i < 3,
|
||||
]);
|
||||
}
|
||||
return $meals;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
|
@ -16,6 +17,11 @@ class AddMealsToUsersTable extends Migration
|
|||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->json('meals')->nullable()->after('name');
|
||||
});
|
||||
|
||||
User::each(function (User $user) {
|
||||
$user->meals = User::getDefaultMeals();
|
||||
$user->save();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -135,12 +135,12 @@
|
|||
</section>
|
||||
</div>
|
||||
<div class="w-full sm:w-3/5 md:w-2/3 lg:w-3/4 flex flex-col space-y-4">
|
||||
@foreach(\Illuminate\Support\Facades\Auth::user()->meals as $meal)
|
||||
@foreach(\Illuminate\Support\Facades\Auth::user()->meals->where('active')->sortBy('weight') as $meal)
|
||||
<div>
|
||||
<h3 class="font-semibold text-lg text-gray-800">
|
||||
<div class="flex items-center">
|
||||
<div>{{ $meal['label'] }}</div>
|
||||
<div class="ml-2 w-full"><hr/></div>
|
||||
<div class="ml-2 flex-grow"><hr/></div>
|
||||
</div>
|
||||
<span class="text-sm text-gray-500">
|
||||
@foreach(\App\Support\Nutrients::all()->sortBy('weight') as $nutrient)
|
||||
|
|
|
|||
Loading…
Reference in New Issue