<?php

namespace Database\Seeders;

use App\Models\CasoPrejuridico;
use App\Models\ClienteCorporativo;
use App\Models\Deudor;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Carbon;

class CasosPrejuridicosSeeder extends Seeder
{
    public function run(): void
    {
        $deudores = Deudor::limit(15)->get();
        $clientes = ClienteCorporativo::limit(5)->get();
        $usuarios = User::limit(3)->get();

        if ($deudores->isEmpty() || $clientes->isEmpty() || $usuarios->isEmpty()) {
            $this->command->error('No hay deudores, clientes o usuarios suficientes. Aborto seeder.');
            return;
        }

        $etapas = ['recepcion','registro','localizacion','gestion_activa','acuerdo_en_curso','seguimiento_acuerdo'];

        for ($i = 1; $i <= 15; $i++) {
            $deudor = $deudores->random();
            $cliente = $clientes->random();
            $responsable = $usuarios->random();
            $etapa = $etapas[array_rand($etapas)];
            $saldo = rand(500_000, 50_000_000);
            $intereses = (int) round($saldo * (rand(2, 15) / 100));
            $diasMora = rand(15, 180);

            CasoPrejuridico::create([
                'radicado' => sprintf('%02d-2026-%04d', rand(1, 12), 1000 + $i),
                'deudor_id' => $deudor->id,
                'cliente_corporativo_id' => $cliente->id,
                'responsable_id' => $responsable->id,
                'etapa' => $etapa,
                'estado' => 'activo',
                'saldo_capital' => $saldo,
                'intereses' => $intereses,
                'total_deuda' => $saldo + $intereses,
                'dias_mora' => $diasMora,
                'fecha_recepcion' => Carbon::now()->subDays($diasMora),
                'observaciones' => 'Caso prejurídico de prueba #' . $i,
            ]);
        }

        $this->command->info('15 casos prejurídicos creados.');
    }
}
