Files
backend_vib360_laravel/app/Models/Device.php

56 lines
1.2 KiB
PHP
Raw Normal View History

2025-03-11 16:22:13 +05:30
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Device extends Model
{
use HasFactory;
2025-03-11 17:15:41 +05:30
protected $table = 'devices';
2025-03-11 16:22:13 +05:30
2025-03-25 11:34:55 +05:30
// Ensure UUIDs are treated as strings
protected $keyType = 'string'; // Treat ID as a string
public $incrementing = false; // Disable auto-incrementing
2025-03-11 16:22:13 +05:30
protected $fillable = [
'id',
'name',
2025-03-21 19:24:02 +05:30
'asset_id',
2025-03-11 16:22:13 +05:30
'type',
'device_profile_id',
2025-03-24 13:31:06 +05:30
'tenant_id',
'customer_id',
'label',
2025-03-11 16:22:13 +05:30
'version',
2025-03-11 19:05:25 +05:30
'active',
2025-03-11 16:22:13 +05:30
'additional_info',
'device_data',
];
2025-03-25 11:34:55 +05:30
// Cast UUIDs and related IDs as strings
protected $casts = [
'id' => 'string',
'asset_id' => 'string',
'device_profile_id' => 'string'
];
// Relationships
2025-03-11 17:15:41 +05:30
public function asset()
2025-03-11 19:05:25 +05:30
{
return $this->belongsTo(Asset::class, 'asset_id', 'id');
}
2025-03-11 17:15:41 +05:30
2025-03-24 13:31:06 +05:30
public function deviceProfile()
{
return $this->belongsTo(DeviceProfileMaster::class, 'device_profile_id', 'id');
}
public function timeseriesKeys()
{
return $this->hasMany(TimeseriesKeyMaster::class, 'device_profile_xid', 'device_profile_id');
}
}