info('Vous allez supprimer définitivement tous les médias (et leurs fichiers) qui ont été supprimés (en soft delete).'); if (!$this->confirm('Etes-vous sûr de vouloir lancer ce traitement ?')) { return 0; } /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */ $subjects = Sujet::where('sujet_dam', true)->get(); $this->newLine(); $this->line('Liste des sujets disponibles'); $this->line('----------------------------'); $this->line('[0] Tous les sujets'); foreach ($subjects as $subject) { $this->line("[{$subject->codeSujet}] {$subject->libelle}"); } $sujetId = $this->askWithCompletion( 'Pour quel sujet de média souhaitez vous executer le traitement ?', $subjects->pluck('codeSujet')->toArray(), 0 ); $this->newLine(); if ($sujetId != 0 and !$subjects->pluck('codeSujet')->contains(\intval($sujetId))) { $this->error('Id de sujet incorrect'); return -1; } $sujetId = intval($sujetId); $mediaCollection = Media::onlyTrashed()->with('sujet.formats'); if ($sujetId !== 0) { $mediaCollection->where('sujet_id', $sujetId); } /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Media> */ $mediaCollection = $mediaCollection->get(); if (!$mediaCollection->count()) { $this->error('Aucun média a supprimer'); return -1; } $this->info($mediaCollection->count() . ' média(s) trouvé(s) - Début du traitement'); $bar = $this->output->createProgressBar($mediaCollection->count()); $bar->start(); foreach ($mediaCollection as $media) { $media->prune(); $bar->advance(); } $bar->finish(); $this->newLine(); $this->info('Fin du traitement'); } }