<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class ValidacionFlujo extends Model
{
    protected $table = 'validaciones_flujo';

    protected $fillable = [
        'proceso_id', 'estado_requerido', 'tipo_validacion',
        'descripcion', 'cumplida', 'cumplida_at', 'cumplida_por', 'detalles',
    ];

    protected $casts = [
        'cumplida'    => 'boolean',
        'cumplida_at' => 'datetime',
        'detalles'    => 'array',
    ];

    const TIPOS = [
        'documentos'     => 'Documentos completos',
        'firmas'         => 'Firmas requeridas',
        'datos_judiciales'=> 'Datos judiciales',
        'asignacion'     => 'Asignación de responsable',
        'obligaciones'   => 'Obligaciones registradas',
        'poder'          => 'Poder notariado',
    ];

    public function proceso(): BelongsTo
    {
        return $this->belongsTo(Proceso::class);
    }

    public function cumplir(int $userId): void
    {
        $this->update(['cumplida' => true, 'cumplida_at' => now(), 'cumplida_por' => $userId]);
    }
}