dishplanner/src/DishPlanner/Schedule/Actions/DraftScheduleForDateAction.php

28 lines
829 B
PHP

<?php
namespace DishPlanner\Schedule\Actions;
use App\Models\Schedule;
use App\Models\ScheduledUserDish;
use App\Models\User;
class DraftScheduleForDateAction
{
public function execute(Schedule $schedule): Schedule
{
User::all()
->reject(fn ($user) => $schedule
->scheduledUserDishes
->map(fn (ScheduledUserDish $scheduledUserDish) => $scheduledUserDish->userDish?->user)
->filter()
->contains($user)
)
->each(fn (User $user) => $user->userDishes->isNotEmpty() && ScheduledUserDish::create([
'schedule_id' => $schedule->id,
'user_dish_id' => $user->userDishes->random()->id,
'user_id' => $user->id,
]));
return $schedule->refresh();
}
}