gps_system/app/Models/DeviceGroup.php
sackey 6b878bb0a0
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
Initial commit
2025-09-12 16:19:56 +00:00

59 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class DeviceGroup extends Model
{
use HasFactory;
protected $fillable = [
'traccar_group_id',
'name',
'description',
'attributes',
'is_active',
];
protected $casts = [
'attributes' => 'array',
'is_active' => 'boolean',
];
/**
* Get devices in this group
*/
public function devices(): HasMany
{
return $this->hasMany(Device::class, 'group_id');
}
/**
* Get users who have access to this group
*/
public function users(): BelongsToMany
{
return $this->belongsToMany(User::class, 'device_group_user', 'device_group_id', 'user_id');
}
/**
* Scope for active groups
*/
public function scopeActive($query)
{
return $query->where('is_active', true);
}
/**
* Get device count in this group
*/
public function getDeviceCountAttribute(): int
{
return $this->devices()->count();
}
}