json([ 'success' => true, 'code' => $code, 'message' => $message, 'data' => $data, ], $code); } protected function created($data = null, string $message = 'Data berhasil dibuat') { return response()->json([ 'success' => true, 'code' => 201, 'message' => $message, 'data' => $data, ], 201); } protected function updated($data = null, string $message = 'Data berhasil diperbarui') { return response()->json([ 'success' => true, 'code' => 200, 'message' => $message, 'data' => $data, ]); } protected function deleted(string $message = 'Data berhasil dihapus') { return response()->json([ 'success' => true, 'code' => 200, 'message' => $message, ]); } protected function error(string $message = 'Internal Server Error', int $code = 500) { return response()->json([ 'success' => false, 'code' => $code, 'message' => $message, ], $code); } protected function validationError($errors) { return response()->json([ 'success' => false, 'code' => 422, 'message' => 'Validation Error', 'errors' => $errors, ], 422); } protected function notFound(string $message = 'Data tidak ditemukan') { return response()->json([ 'success' => false, 'code' => 404, 'message' => $message, ], 404); } protected function successPaginated( LengthAwarePaginator $data, string $resource, string $message = 'Success', int $code = 200 ) { $data->through( fn ($item) => (new $resource($item))->resolve(request()) ); return $this->success($data, $message, $code); } }