29 lines
713 B
PHP
29 lines
713 B
PHP
<?php
|
|
|
|
namespace App\Actions;
|
|
|
|
use App\Enums\NutritionPlanSource;
|
|
use App\Models\User;
|
|
|
|
class CompleteNutritionOnboarding
|
|
{
|
|
public function __construct(private RecalculateNutritionPlan $recalculateNutritionPlan) {}
|
|
|
|
/**
|
|
* @param array<string, mixed> $data
|
|
*/
|
|
public function execute(User $user, array $data): User
|
|
{
|
|
if ($user->hasCompletedNutritionOnboarding()) {
|
|
return $user->loadMissing(['activeNutritionPlan', 'latestWeightEntry']);
|
|
}
|
|
|
|
return $this->recalculateNutritionPlan->execute(
|
|
user: $user,
|
|
data: $data,
|
|
source: NutritionPlanSource::ONBOARDING,
|
|
completeOnboarding: true,
|
|
);
|
|
}
|
|
}
|