<?php

namespace App\Console\Commands;

use App\Services\Operations\AgencyManagementReportService;
use Illuminate\Console\Command;

class AgencyManagementReportCommand extends Command
{
    protected $signature = 'dw:agency-report
        {--period=weekly : daily, weekly, monthly veya custom}
        {--from= : Başlangıç tarihi Y-m-d}
        {--to= : Bitiş tarihi Y-m-d}';

    protected $description = 'Ajans KPI / yönetim raporu üretir.';

    public function handle(AgencyManagementReportService $reports): int
    {
        $report = $reports->generate([
            'period_type' => $this->option('period'),
            'date_from' => $this->option('from'),
            'date_to' => $this->option('to'),
        ]);

        if ($report->status === 'failed') {
            $this->error('Rapor oluşturulamadı: '.$report->error_message);
            return self::FAILURE;
        }

        $this->info('Ajans yönetim raporu oluşturuldu: #'.$report->id.' / Skor: '.$report->overall_score.'/100');

        return self::SUCCESS;
    }
}
