88 lines
2.3 KiB
PHP
88 lines
2.3 KiB
PHP
<?php namespace App\Http\Controllers\Netbien;
|
|
/**
|
|
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
|
|
*/
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Netbien\SimCardStoreRequest;
|
|
use App\Http\Requests\Netbien\SimCardUpdateRequest;
|
|
use App\Models\SimCard;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Notsoweb\ApiResponse\Enums\ApiResponse;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class SimCardController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$simCards = SimCard::with('packSims.package:id,name')->orderBy('id', 'asc')->paginate(config('app.pagination'));
|
|
|
|
return ApiResponse::OK->response([
|
|
'data' => $simCards,
|
|
]);
|
|
}
|
|
|
|
public function store(SimCardStoreRequest $request)
|
|
{
|
|
try {
|
|
DB::beginTransaction();
|
|
|
|
$simCard = SimCard::create($request->validated());
|
|
|
|
if ($request->has('package_id')) {
|
|
// Asignar el paquete con fecha de activación
|
|
$simCard->packages()->attach($request->package_id, [
|
|
'activated_at' => now(),
|
|
'is_active' => true,
|
|
]);
|
|
}
|
|
|
|
DB::commit();
|
|
|
|
$simCard->load('activePackage');
|
|
|
|
return ApiResponse::CREATED->response([
|
|
'data' => $simCard,
|
|
]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
return ApiResponse::INTERNAL_ERROR->response([
|
|
'message' => 'Error al crear SIM card',
|
|
'error' => $e->getMessage(),
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function update(SimCardUpdateRequest $request, SimCard $simCard)
|
|
{
|
|
$simCard->update($request->validated());
|
|
|
|
return ApiResponse::OK->response([
|
|
'data' => $simCard,
|
|
]);
|
|
}
|
|
|
|
public function destroy(SimCard $simCard)
|
|
{
|
|
try {
|
|
DB::beginTransaction();
|
|
|
|
$simCard->delete();
|
|
|
|
DB::commit();
|
|
|
|
return ApiResponse::NO_CONTENT->response();
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
|
|
return ApiResponse::INTERNAL_ERROR->response([
|
|
'message' => 'Error al eliminar SIM card',
|
|
'error' => $e->getMessage(),
|
|
]);
|
|
}
|
|
}
|
|
|
|
}
|