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

68 lines
1.8 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,
]);
}
}