UserAssetLink

This commit is contained in:
kshitige
2025-03-11 19:05:25 +05:30
parent 52086a0b67
commit 7955109bf8
5 changed files with 35 additions and 18 deletions

View File

@@ -11,9 +11,24 @@ class UserAssetLinkController extends Controller
{
public function index()
{
$userAssetLinks = User::id('a5daeb60-f36c-11ef-a9dc-45dd276e4cd5');
$userAssetLinks = UserAssetLink::with(['user', 'asset.devices'])->get();
$user = User::where('id', '8898f380-fd9e-11ef-a9dc-45dd276e4cd5')->first();
$userAssetLinks = UserAssetLink::with(['user', 'asset.devices'])
->withCount([
'asset as active_devices_count' => function ($query) {
$query->whereHas('devices', function ($q) {
$q->where('active', 1);
});
},
'asset as inactive_devices_count' => function ($query) {
$query->whereHas('devices', function ($q) {
$q->where('active', 0);
});
}
])
->get();
return response()->json($userAssetLinks);
}
}
}

View File

@@ -36,8 +36,8 @@ class Asset extends Model
];
public function devices()
{
return $this->hasMany(Device::class, 'asset_id', 'id');
}
{
return $this->hasMany(Device::class, 'asset_id', 'id');
}
}
}

View File

@@ -25,6 +25,7 @@ class Device extends Model
'software_id',
'external_id',
'version',
'active',
'additional_info',
'device_data',
];
@@ -42,8 +43,8 @@ class Device extends Model
];
public function asset()
{
return $this->belongsTo(Asset::class, 'asset_id');
}
{
return $this->belongsTo(Asset::class, 'asset_id', 'id');
}
}
}

View File

@@ -9,20 +9,20 @@ class UserAssetLink extends Model
{
use HasFactory;
protected $table = 'user_asset_link';
protected $table = 'user_asset_link';
protected $fillable = [
'user_id',
'asset_id',
];
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
public function asset()
{
return $this->belongsTo(Asset::class, 'asset_id');
return $this->belongsTo(Asset::class, 'asset_id', 'id');
}
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
}

View File

@@ -26,6 +26,7 @@ return new class extends Migration
$table->uuid('software_id')->nullable();
$table->uuid('external_id')->nullable();
$table->integer('version')->default(1);
$table->smallInteger('active')->default(1)->comment('1: Active, 0: Inactive');
$table->json('additional_info')->nullable();
$table->json('device_data')->nullable();
$table->timestamps();