File: /var/www/limestate-admin/app/Console/Commands/Export/Avito.php
<?php
namespace App\Console\Commands\Export;
use App\Helpers\FileHelper;
use App\Models\Export\ExportData;
use App\Models\ExternalServiceRelation;
use App\Services\Export\ExportFlatAvitoService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Symfony\Component\Console\Command\Command as CommandAlias;
class Avito extends Command
{
protected $signature = 'export:avito {--f|force}';
protected $description = 'Генерация XML экспорта Авито';
public function handle(ExportFlatAvitoService $service): int
{
$isForce = (bool) $this->option('force');
if ($isForce) {
ExportData::clear(ExternalServiceRelation::SERVICE_AVITO);
}
$this->info($this->description);
$updateOnly = !in_array(date('w'), [0, 3, 5]);
$xml = $service->setUpdateOnly(!$isForce && $updateOnly)->generate();
if (!Storage::disk('public')->put('avito.xml', $xml)) {
$this->error('Ошибка сохранения файла');
return CommandAlias::FAILURE;
}
FileHelper::updatePermissions(Storage::disk('public')->path('avito.xml'));
$this->info('Экспортировано квартир: ' . $service->getExportedCount());
return CommandAlias::SUCCESS;
}
}