File: /var/www/ipsremont-demo/app/Observers/RepairObserver.php
<?php
namespace App\Observers;
use App\Models\Repair\Repair;
use App\Repository\Service\ServiceLastActionRepository;
use App\Services\Log\LogService;
use App\Services\Status\StatusService;
use App\Services\WorkCompleteCertificate\WorkCompleteCertificateService;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Log;
class RepairObserver extends BaseObserver
{
public function created(Model $model)
{
/** @var Repair $model */
LogService::created($model);
ServiceLastActionRepository::add('Создал наряд №' . $model->id);
}
public function updated(Model $model)
{
/** @var Repair $model */
$statusChanged = $model->status !== $model->getOriginal('status');
if ($statusChanged) {
switch ($model->status) {
case Repair::STATUS_COMPLETED:
if (empty($model->category_id)) {
Log::channel('debugLog')->debug(json_encode(debug_backtrace(), JSON_THROW_ON_ERROR));
}
WorkCompleteCertificateService::createFromRepair($model);
break;
}
StatusService::repairStatusChanged($model);
}
LogService::updated($model);
ServiceLastActionRepository::add('Обновил наряд №' . $model->id);
}
}