60 lines
1.4 KiB
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();
|
|
}
|
|
|
|
}
|