UserModel

This commit is contained in:
kshitige
2025-03-11 17:15:41 +05:30
parent 41214db097
commit b564a1a89d
11 changed files with 89 additions and 23 deletions

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\CustomerApi;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AssetController extends Controller
{
//
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\CustomerApi;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DeviceController extends Controller
{
//
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\CustomerApi;
use App\Http\Controllers\Controller;
use App\Models\UserAssetLink;
use Illuminate\Http\Request;
class UserAssetLinkController extends Controller
{
public function index()
{
$userAssetLinks = UserAssetLink::with(['user', 'asset.devices'])->get();
return response()->json($userAssetLinks);
}
}

View File

@@ -9,7 +9,7 @@ class Asset extends Model
{
use HasFactory;
protected $table = 'assets';
protected $table = 'assets';
protected $fillable = [
'id',
@@ -34,4 +34,10 @@ class Asset extends Model
'external_id' => 'string',
'additional_info' => 'array',
];
public function devices()
{
return $this->hasMany(Device::class, 'asset_id', 'id');
}
}

View File

@@ -1,19 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AssetDeviceLink extends Model
{
use HasFactory;
protected $table = 'user_asset_link';
protected $fillable = [
'user_id',
'asset_id'
];
}

View File

@@ -9,7 +9,7 @@ class Device extends Model
{
use HasFactory;
protected $table = 'devices';
protected $table = 'devices';
protected $fillable = [
'id',
@@ -40,4 +40,10 @@ class Device extends Model
'additional_info' => 'array',
'device_data' => 'array',
];
public function asset()
{
return $this->belongsTo(Asset::class, 'asset_id');
}
}

View File

@@ -45,4 +45,9 @@ class User extends Authenticatable
'password' => 'hashed',
];
}
public function assets()
{
return $this->hasManyThrough(Asset::class, UserAssetLink::class, 'user_id', 'id', 'id', 'asset_id');
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserAssetLink extends Model
{
use HasFactory;
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');
}
}

2
composer.lock generated
View File

@@ -8729,5 +8729,5 @@
"php": "^8.2"
},
"platform-dev": [],
"plugin-api-version": "2.6.0"
"plugin-api-version": "2.3.0"
}

View File

@@ -2,7 +2,8 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Models\UserAssetLink;
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:sanctum');
})->middleware('auth:sanctum');