74 lines
1.4 KiB
PHP
74 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
class AlertaRobo extends Model
|
|
{
|
|
protected $table = 'alertas_robos';
|
|
|
|
protected $fillable = [
|
|
'fast_id',
|
|
'vin',
|
|
'placa',
|
|
'marca',
|
|
'modelo',
|
|
'color',
|
|
'arco_id',
|
|
'arco_nombre',
|
|
'antena',
|
|
'fecha_deteccion',
|
|
'visto',
|
|
'usuario_id',
|
|
'fecha_confirmacion',
|
|
];
|
|
|
|
protected $casts = [
|
|
'visto' => 'boolean',
|
|
'fecha_deteccion' => 'datetime',
|
|
'fecha_confirmacion' => 'datetime',
|
|
];
|
|
|
|
/**
|
|
* Relación con el arco
|
|
*/
|
|
public function arco(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Arco::class, 'arco_id');
|
|
}
|
|
|
|
/**
|
|
* Relación con el usuario que confirmó
|
|
*/
|
|
public function usuario(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class, 'usuario_id');
|
|
}
|
|
|
|
/**
|
|
* Scope para obtener alertas pendientes (no vistas)
|
|
*/
|
|
public function scopePendientes($query)
|
|
{
|
|
return $query->where('visto', false);
|
|
}
|
|
|
|
/**
|
|
* Scope para obtener alertas vistas
|
|
*/
|
|
public function scopeVistas($query)
|
|
{
|
|
return $query->where('visto', true);
|
|
}
|
|
|
|
/**
|
|
* Scope para ordenar por más reciente
|
|
*/
|
|
public function scopeRecientes($query)
|
|
{
|
|
return $query->orderBy('fecha_deteccion', 'desc');
|
|
}
|
|
}
|