'datetime','last_occurred_at'=>'datetime','recovered_at'=>'datetime','last_notified_at'=>'datetime','acknowledged_at'=>'datetime']; public static function resolveIfPushing(int $cameraId, array $remote): void { if (($remote['sdkStatus'] ?? null) !== 'ONLINE' || ($remote['healthStatus'] ?? $remote['pushStatus'] ?? null) !== 'ONLINE_PUSHING' || empty($remote['lastPdcAt'])) return; static::query()->where('camera_device_id', $cameraId)->whereIn('status', ['OPEN', 'ACKNOWLEDGED']) ->update(['status' => 'RESOLVED', 'recovered_at' => now()]); } public function camera(): BelongsTo { return $this->belongsTo(CameraDevice::class, 'camera_device_id'); } public function venue(): BelongsTo { return $this->belongsTo(Venue::class); } public function notifications(): HasMany { return $this->hasMany(CameraAlertNotification::class); } }