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(), ]); } } }