TenantAtlas/apps/platform/app/Models/BackupSchedule.php
Ahmed Darrazi 1123b122d9
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 7m13s
feat: cut over tenant core to managed environments
2026-05-07 08:35:42 +02:00

47 lines
1.5 KiB
PHP

<?php
namespace App\Models;
use App\Support\OperationCatalog;
use App\Support\OperationRunType;
use App\Support\Concerns\DerivesWorkspaceIdFromTenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
class BackupSchedule extends Model
{
use DerivesWorkspaceIdFromTenant;
use HasFactory;
use SoftDeletes;
protected $guarded = [];
protected $casts = [
'is_enabled' => 'boolean',
'include_foundations' => 'boolean',
'days_of_week' => 'array',
'policy_types' => 'array',
'last_run_at' => 'datetime',
'next_run_at' => 'datetime',
];
public function tenant(): BelongsTo
{
return $this->belongsTo(ManagedEnvironment::class, 'managed_environment_id');
}
public function operationRuns(): HasMany
{
return $this->hasMany(OperationRun::class, 'managed_environment_id', 'managed_environment_id')
->whereIn('type', array_values(array_unique(array_merge(
OperationCatalog::rawValuesForCanonical(OperationRunType::BackupScheduleExecute->value),
OperationCatalog::rawValuesForCanonical(OperationRunType::BackupScheduleRetention->value),
OperationCatalog::rawValuesForCanonical(OperationRunType::BackupSchedulePurge->value),
))))
->where('context->backup_schedule_id', (int) $this->getKey());
}
}