<?php namespace App\Jobs; use App\Models\ScheduledDatabaseBackup; use App\Models\Server; use App\Models\Team; use App\Notifications\Database\DailyBackup; use App\Notifications\Server\HighDiskUsage; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeEncrypted; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\Middleware\WithoutOverlapping; use Illuminate\Queue\SerializesModels; class DatabaseBackupStatusJob implements ShouldQueue, ShouldBeEncrypted { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $tries = 1; public function __construct() { } public function handle() { // $teams = Team::all(); // foreach ($teams as $team) { // $scheduled_backups = $team->scheduledDatabaseBackups()->get(); // if ($scheduled_backups->isEmpty()) { // continue; // } // foreach ($scheduled_backups as $scheduled_backup) { // $last_days_backups = $scheduled_backup->get_last_days_backup_status(); // if ($last_days_backups->isEmpty()) { // continue; // } // $failed = $last_days_backups->where('status', 'failed'); // } // } // $scheduled_backups = ScheduledDatabaseBackup::all(); // $databases = collect(); // $teams = collect(); // foreach ($scheduled_backups as $scheduled_backup) { // $last_days_backups = $scheduled_backup->get_last_days_backup_status(); // if ($last_days_backups->isEmpty()) { // continue; // } // $failed = $last_days_backups->where('status', 'failed'); // $database = $scheduled_backup->database; // $team = $database->team(); // $teams->put($team->id, $team); // $databases->put("{$team->id}:{$database->name}", [ // 'failed_count' => $failed->count(), // ]); // } // foreach ($databases as $name => $database) { // [$team_id, $name] = explode(':', $name); // $team = $teams->get($team_id); // $team?->notify(new DailyBackup($databases)); // } } }