File: /var/www/ipsremont-demo/app/Observers/ShipmentObserver.php
<?php
namespace App\Observers;
use App\Jobs\DpdRequest;
use App\Jobs\PekRequest;
use App\Jobs\SdekRequest;
use App\Models\Service\Service;
use App\Services\Log\LogService;
use App\Services\Status\StatusService;
use Illuminate\Database\Eloquent\Model;
class ShipmentObserver extends BaseObserver
{
public function created(Model $model)
{
StatusService::shipmentStatusChanged($model);
switch ($model->delivery_service) {
case Service::TYPE_CDEK:
SdekRequest::dispatch($model);
break;
case Service::TYPE_PEK:
PekRequest::dispatch($model);
break;
case Service::TYPE_DPD:
DpdRequest::dispatch($model);
break;
}
LogService::created($model);
}
public function updated(Model $model)
{
if ($model->status <> $model->getOriginal('status')) {
StatusService::shipmentStatusChanged($model);
}
LogService::updated($model);
}
}