Initial commit device-management
tests / ci (push) Has been cancelled

This commit is contained in:
Wian Drs
2026-08-25 09:42:00 +07:00
commit 1e80be180e
1159 changed files with 149545 additions and 0 deletions
@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreTenantRequest;
use App\Http\Requests\UpdateTenantRequest;
use App\Http\Resources\TenantResource;
use App\Models\Tenant;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
class TenantController extends Controller
{
public function index(): AnonymousResourceCollection
{
$this->authorize('viewAny', Tenant::class);
$user = request()->user();
$query = Tenant::query()->orderBy('name');
if (! ($user->is_platform_admin && $user->can('tenant.access-any'))) {
$query->whereKey($user->tenant_id);
}
return TenantResource::collection($query->paginate());
}
public function store(StoreTenantRequest $request): JsonResponse
{
$tenant = Tenant::create($request->validated());
return response()->json(['success' => true, 'message' => 'Tenant created successfully', 'data' => new TenantResource($tenant)], 201);
}
public function show(Tenant $tenant): JsonResponse
{
$this->authorize('view', $tenant);
return response()->json(['success' => true, 'message' => 'Tenant retrieved successfully', 'data' => new TenantResource($tenant)]);
}
public function update(UpdateTenantRequest $request, Tenant $tenant): JsonResponse
{
$this->authorize('update', $tenant);
$tenant->update($request->validated());
return response()->json(['success' => true, 'message' => 'Tenant updated successfully', 'data' => new TenantResource($tenant)]);
}
public function destroy(Tenant $tenant): JsonResponse
{
$this->authorize('delete', $tenant);
$tenant->delete();
return response()->json(['success' => true, 'message' => 'Tenant deleted successfully', 'data' => null]);
}
}