2.x - backups

This commit is contained in:
Saeed Vaziry
2024-09-29 17:54:11 +02:00
parent e4fed24498
commit 2e9620409b
35 changed files with 1093 additions and 122 deletions

View File

@ -6,6 +6,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
/**
* @property string $type
@ -46,14 +47,14 @@ public static function boot(): void
parent::boot();
static::deleting(function (Backup $backup) {
$backup->files()->delete();
$backup->files()->each(function (BackupFile $file) {
$file->delete();
});
});
}
public static array $statusColors = [
BackupStatus::READY => 'success',
BackupStatus::RUNNING => 'warning',
BackupStatus::DELETING => 'warning',
BackupStatus::RUNNING => 'success',
BackupStatus::FAILED => 'danger',
];
@ -76,4 +77,9 @@ public function files(): HasMany
{
return $this->hasMany(BackupFile::class, 'backup_id');
}
public function lastFile(): HasOne
{
return $this->hasOne(BackupFile::class, 'backup_id')->latest();
}
}

View File

@ -66,7 +66,8 @@ protected static function booted(): void
BackupFileStatus::CREATING => 'warning',
BackupFileStatus::FAILED => 'danger',
BackupFileStatus::DELETING => 'warning',
BackupFileStatus::RESTORED => 'warning',
BackupFileStatus::RESTORING => 'warning',
BackupFileStatus::RESTORED => 'primary',
BackupFileStatus::RESTORE_FAILED => 'danger',
];

View File

@ -14,6 +14,7 @@
* @property array $credentials
* @property User $user
* @property int $project_id
* @property string $image_url
*/
class StorageProvider extends AbstractModel
{
@ -61,4 +62,9 @@ public static function getByProjectId(int $projectId): Builder
->where('project_id', $projectId)
->orWhereNull('project_id');
}
public function getImageUrlAttribute(): string
{
return url('/static/images/'.$this->provider.'.svg');
}
}