<?php

namespace App\Models;

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

class Equipo extends Model
{
    use HasFactory;

    protected $table = 'equipos';
    protected $fillable = [
        'area_id', 'sistema_id', 'codigo', 'nombre', 'descripcion',
        'marca', 'modelo', 'serie', 'ubicacion', 'fecha_instalacion',
        'horometro_actual', 'ultimo_pm_360', 'ultimo_pm_720',
        'ultimo_pm_4320', 'ultimo_pm_8640', 'imagen', 'activo',
    ];
    protected $casts = [
        'activo' => 'boolean',
        'fecha_instalacion' => 'date',
        'horometro_actual' => 'decimal:2',
        'ultimo_pm_360' => 'decimal:2',
        'ultimo_pm_720' => 'decimal:2',
        'ultimo_pm_4320' => 'decimal:2',
        'ultimo_pm_8640' => 'decimal:2',
    ];

    public function area(): BelongsTo { return $this->belongsTo(Area::class); }
    public function sistema(): BelongsTo { return $this->belongsTo(Sistema::class); }
    public function componentes(): HasMany { return $this->hasMany(Componente::class); }
    public function planes(): HasMany { return $this->hasMany(PlanMantenimiento::class); }
    public function ordenes(): HasMany { return $this->hasMany(OrdenTrabajo::class); }
    public function lecturas(): HasMany { return $this->hasMany(LecturaHorometro::class)->orderByDesc('fecha_lectura'); }
}
