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\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Spatie\MediaLibrary\HasMedia;
|
use Spatie\MediaLibrary\HasMedia;
|
||||||
use Spatie\MediaLibrary\InteractsWithMedia;
|
use Spatie\MediaLibrary\InteractsWithMedia;
|
||||||
|
|
@ -89,6 +90,22 @@ final class User extends Authenticatable implements HasMedia
|
||||||
'meals' => AsCollection::class,
|
'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
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
@ -16,6 +17,11 @@ class AddMealsToUsersTable extends Migration
|
||||||
Schema::table('users', function (Blueprint $table) {
|
Schema::table('users', function (Blueprint $table) {
|
||||||
$table->json('meals')->nullable()->after('name');
|
$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>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full sm:w-3/5 md:w-2/3 lg:w-3/4 flex flex-col space-y-4">
|
<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>
|
<div>
|
||||||
<h3 class="font-semibold text-lg text-gray-800">
|
<h3 class="font-semibold text-lg text-gray-800">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div>{{ $meal['label'] }}</div>
|
<div>{{ $meal['label'] }}</div>
|
||||||
<div class="ml-2 w-full"><hr/></div>
|
<div class="ml-2 flex-grow"><hr/></div>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-sm text-gray-500">
|
<span class="text-sm text-gray-500">
|
||||||
@foreach(\App\Support\Nutrients::all()->sortBy('weight') as $nutrient)
|
@foreach(\App\Support\Nutrients::all()->sortBy('weight') as $nutrient)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue