NETBien.backend/app/Http/Controllers/Netbien/ClientController.php

60 lines
1.4 KiB
PHP

<?php namespace App\Http\Controllers\Netbien;
use Notsoweb\ApiResponse\Enums\ApiResponse;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Client;
use App\Http\Requests\Netbien\ClientStoreRequest;
use App\Http\Requests\Netbien\ClientUpdateRequest;
/**
*
*/
class ClientController extends Controller
{
public function index()
{
$clients = Client::with('simCards:id,msisdn')->orderBy('id', 'asc')->paginate(config('app.pagination'));
return ApiResponse::OK->response([
'data' => $clients,
]);
}
public function store(ClientStoreRequest $request)
{
$client = Client::create($request->validated());
return ApiResponse::CREATED->response([
'data' => $client,
]);
}
public function update(ClientUpdateRequest $request, Client $client)
{
$client->update($request->validated());
return ApiResponse::OK->response([
'data' => $client,
]);
}
public function destroy(Client $client)
{
$hasActiveSims = $client->simCards()
->wherePivot('is_active', true)
->exists();
if ($hasActiveSims) {
return ApiResponse::BAD_REQUEST->response([
'message' => 'No se puede eliminar el cliente porque tiene SIMs activas',
]);
}
$client->delete();
return ApiResponse::NO_CONTENT->response();
}
}