28 lines
913 B
PHP
28 lines
913 B
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Services\Payments\PaypalPaymentSyncService;
|
|
use Illuminate\Console\Command;
|
|
|
|
class SyncPaypalPaymentsCommand extends Command
|
|
{
|
|
protected $signature = 'payments:sync-paypal {--dry-run} {--report-only}';
|
|
protected $description = 'Sync PayPal payments to internal payments table from paypal_payments.';
|
|
|
|
public function handle(PaypalPaymentSyncService $service): int
|
|
{
|
|
$dryRun = (bool) $this->option('dry-run');
|
|
$reportOnly = (bool) $this->option('report-only');
|
|
|
|
$result = $service->sync($dryRun, $reportOnly);
|
|
|
|
$this->info(sprintf('[%s] %d PayPal payments processed.', $result['mode'], $result['processed']));
|
|
if (!empty($result['failed'])) {
|
|
$this->error(sprintf('[%s] Failed transactions: %s', $result['mode'], implode(', ', $result['failed'])));
|
|
}
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|