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

29 lines
828 B
PHP
Raw Normal View History

2025-10-13 14:57:11 +02:00
<?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();
}
}