<?php

namespace App\Console\Commands;

use App\Services\Alerts\AlertEngine;
use Illuminate\Console\Command;

class EvaluateAlertRulesCommand extends Command
{
    protected $signature = 'dw:evaluate-alerts {--client= : Sadece belirli müşteri ID için çalıştır} {--rule= : Sadece belirli kural ID için çalıştır} {--no-notify : Mail bildirimi göndermeden değerlendir}';

    protected $description = 'DW Ads Reporter uyarı kurallarını snapshot verilerine göre değerlendirir.';

    public function handle(AlertEngine $engine): int
    {
        $summary = $engine->evaluateAll(
            clientId: $this->option('client') ? (int) $this->option('client') : null,
            ruleId: $this->option('rule') ? (int) $this->option('rule') : null,
            notify: ! (bool) $this->option('no-notify')
        );

        $this->info('Uyarı değerlendirme tamamlandı.');
        $this->line('Değerlendirilen: ' . $summary['evaluated']);
        $this->line('Tetiklenen: ' . $summary['triggered']);
        $this->line('Atlanan/uygun değil: ' . $summary['skipped']);

        return self::SUCCESS;
    }
}
