40 lines
893 B
PHP
40 lines
893 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace DishPlanner\ScheduledUserDish\Actions;
|
||
|
|
|
||
|
|
use App\Models\Planner;
|
||
|
|
use App\Models\Schedule;
|
||
|
|
use App\Models\ScheduledUserDish;
|
||
|
|
use Carbon\Carbon;
|
||
|
|
|
||
|
|
class SkipScheduledUserDishForDateAction
|
||
|
|
{
|
||
|
|
public function execute(Planner $planner, Carbon $date, int $userId): bool
|
||
|
|
{
|
||
|
|
$schedule = Schedule::query()
|
||
|
|
->where('planner_id', $planner->id)
|
||
|
|
->whereDate('date', $date)
|
||
|
|
->first();
|
||
|
|
|
||
|
|
if (! $schedule) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scheduledUserDish = ScheduledUserDish::query()
|
||
|
|
->where('schedule_id', $schedule->id)
|
||
|
|
->where('user_id', $userId)
|
||
|
|
->first();
|
||
|
|
|
||
|
|
if (! $scheduledUserDish) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
$scheduledUserDish->update([
|
||
|
|
'is_skipped' => true,
|
||
|
|
'user_dish_id' => null,
|
||
|
|
]);
|
||
|
|
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|