Path: blob/1.0-develop/app/Repositories/Eloquent/BackupRepository.php
7460 views
<?php12namespace Pterodactyl\Repositories\Eloquent;34use Carbon\Carbon;5use Pterodactyl\Models\Backup;6use Pterodactyl\Models\Server;7use Illuminate\Support\Collection;8use Illuminate\Database\Eloquent\Relations\HasMany;910class BackupRepository extends EloquentRepository11{12public function model(): string13{14return Backup::class;15}1617/**18* Determines if too many backups have been generated by the server.19*/20public function getBackupsGeneratedDuringTimespan(int $server, int $seconds = 600): array|Collection21{22return $this->getBuilder()23->withTrashed()24->where('server_id', $server)25->where(function ($query) {26$query->whereNull('completed_at')27->orWhere('is_successful', '=', true);28})29->where('created_at', '>=', Carbon::now()->subSeconds($seconds)->toDateTimeString())30->get()31->toBase();32}3334/**35* Returns a query filtering only non-failed backups for a specific server.36*/37public function getNonFailedBackups(Server $server): HasMany38{39return $server->backups()->where(function ($query) {40$query->whereNull('completed_at')41->orWhere('is_successful', true);42});43}44}454647