<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class PlanItem extends Model
{
    use HasFactory;

    protected $table = 'planes_items';
    protected $fillable = [
        'plan_id', 'componente_id', 'numero_item', 'descripcion',
        'cambio_lubricacion', 'codigo_componente', 'unidad_id', 'cantidad',
        'frecuencia_id', 'lila_l_limpieza', 'lila_i_inspeccion',
        'lila_l_lubricacion', 'lila_a_ajuste',
        'pm_360', 'pm_720', 'pm_4320', 'pm_8640',
        'tipo_mantenimiento_id', 'responsable_id',
        'observaciones', 'costo_estimado', 'costo_promedio', 'costo_actual', 'activo',
    ];
    protected $casts = [
        'lila_l_limpieza' => 'boolean', 'lila_i_inspeccion' => 'boolean',
        'lila_l_lubricacion' => 'boolean', 'lila_a_ajuste' => 'boolean',
        'pm_360' => 'boolean', 'pm_720' => 'boolean',
        'pm_4320' => 'boolean', 'pm_8640' => 'boolean',
        'activo' => 'boolean',
        'cantidad' => 'decimal:3',
        'costo_estimado' => 'decimal:2',
        'costo_promedio' => 'decimal:2',
        'costo_actual' => 'decimal:2',
    ];

    public function plan(): BelongsTo { return $this->belongsTo(PlanMantenimiento::class, 'plan_id'); }
    public function componente(): BelongsTo { return $this->belongsTo(Componente::class); }
    public function unidad(): BelongsTo { return $this->belongsTo(Unidad::class); }
    public function frecuencia(): BelongsTo { return $this->belongsTo(Frecuencia::class); }
    public function tipoMantenimiento(): BelongsTo { return $this->belongsTo(TipoMantenimiento::class); }
    public function responsable(): BelongsTo { return $this->belongsTo(User::class, 'responsable_id'); }
}
