39 lines
1010 B
PHP
39 lines
1010 B
PHP
<?php
|
|
|
|
namespace App\Actions\Draw;
|
|
|
|
use App\Models\Audition;
|
|
use Illuminate\Support\Collection;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use function auditionLog;
|
|
|
|
class ClearDraw
|
|
{
|
|
public function __invoke(Audition|collection $auditions): void
|
|
{
|
|
if ($auditions instanceof Audition) {
|
|
$this->clearDraw($auditions);
|
|
}
|
|
if ($auditions instanceof Collection) {
|
|
$this->clearDraws($auditions);
|
|
}
|
|
}
|
|
|
|
public function clearDraw(Audition $audition): void
|
|
{
|
|
$audition->removeFlag('drawn');
|
|
DB::table('entries')->where('audition_id', $audition->id)->update(['draw_number' => null]);
|
|
$message = 'Cleared draw for audition #'.$audition->id.' '.$audition->name;
|
|
$affected['auditions'] = [$audition->id];
|
|
auditionLog($message, $affected);
|
|
}
|
|
|
|
public function clearDraws(Collection $auditions): void
|
|
{
|
|
foreach ($auditions as $audition) {
|
|
$this->clearDraw($audition);
|
|
}
|
|
}
|
|
}
|