<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Activitylog\LogOptions;

class Deudor extends Model
{
    use HasFactory, LogsActivity;

    protected $table = 'deudores';

    protected $fillable = [
        'departamento',
        'ciudad_residencia',
        'consecutivo_yber',
        'numero_juicio',
        'tipo_documento',
        'numero_documento',
        'nombre_completo',
        'email',
        'telefono',
        'direccion_notificacion',
        'ciudad',
        'tiene_bienes',
        'notas_bienes',
    ];

    protected $casts = [
        'tiene_bienes' => 'boolean',
    ];

    public function procesos()
    {
        return $this->hasMany(Proceso::class);
    }

    public function procesosActivos()
    {
        return $this->hasMany(Proceso::class)->where('estado', '!=', 'terminado');
    }

    public function casosPrejuridicos()
    {
        return $this->hasMany(\App\Models\CasoPrejuridico::class);
    }


    public function getDocumentoCompletoAttribute(): string
    {
        return "{$this->tipo_documento} {$this->numero_documento}";
    }

    public function getActivitylogOptions(): LogOptions
    {
        return LogOptions::defaults()
            ->logOnly(['nombre_completo', 'numero_documento', 'tiene_bienes'])
            ->logOnlyDirty()
            ->setDescriptionForEvent(fn(string $eventName) => "Deudor {$this->nombre_completo}: {$eventName}");
    }
}
