morphTo(); } public function latest_log(): HasOne { return $this->hasOne(ScheduledDatabaseBackupExecution::class)->latest(); } public function executions(): HasMany { return $this->hasMany(ScheduledDatabaseBackupExecution::class); } public function s3() { return $this->belongsTo(S3Storage::class, 's3_storage_id'); } public function get_last_days_backup_status($days = 7) { return $this->hasMany(ScheduledDatabaseBackupExecution::class)->where('created_at', '>=', now()->subDays($days))->get(); } public function server() { $database = $this->database; if (!$database) { return null; } if (method_exists($database, 'server')) { return $database->server; } if (method_exists($database, 'service') && $database->service) { return $database->service->server; } return null; } }