<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class OnboardingItem extends Model
{
    protected $fillable = [
        'contrato_id', 'titulo', 'descricao', 'ordem',
        'responsavel_cliente', 'concluido_em', 'concluido_por',
    ];

    protected $casts = [
        'responsavel_cliente' => 'boolean',
        'concluido_em'        => 'datetime',
    ];

    public function contrato()
    {
        return $this->belongsTo(Contrato::class);
    }

    public function concluidoPor()
    {
        return $this->belongsTo(User::class, 'concluido_por');
    }

    public function isConcluido(): bool
    {
        return $this->concluido_em !== null;
    }

    public function toggle(int $userId): void
    {
        if ($this->isConcluido()) {
            $this->update(['concluido_em' => null, 'concluido_por' => null]);
        } else {
            $this->update(['concluido_em' => now(), 'concluido_por' => $userId]);
        }
    }
}
