bound('tenant_id') || ! app('tenant_id')) { $tenantId = (int) ($request->header('X-TENANT-ID') ?: 287); app()->instance('tenant_id', $tenantId); } if (! app()->bound('api_user') || ! app('api_user')) { // mng에서 Bearer 토큰 없이 호출 시 시스템 사용자(1)로 설정 app()->instance('api_user', 1); } } public function index(BendingItemIndexRequest $request): JsonResponse { $this->ensureContext($request); return ApiResponse::handle(function () use ($request) { $paginator = $this->service->list($request->validated()); $paginator->getCollection()->transform(fn ($item) => (new BendingItemResource($item))->resolve()); return $paginator; }, __('message.fetched')); } public function filters(Request $request): JsonResponse { $this->ensureContext($request); return ApiResponse::handle( fn () => $this->service->filters(), __('message.fetched') ); } public function show(Request $request, int $id): JsonResponse { $this->ensureContext($request); return ApiResponse::handle( fn () => new BendingItemResource($this->service->find($id)), __('message.fetched') ); } public function store(BendingItemStoreRequest $request): JsonResponse { $this->ensureContext($request); return ApiResponse::handle( fn () => new BendingItemResource($this->service->create($request->validated())), __('message.created') ); } public function update(BendingItemUpdateRequest $request, int $id): JsonResponse { $this->ensureContext($request); return ApiResponse::handle( fn () => new BendingItemResource($this->service->update($id, $request->validated())), __('message.updated') ); } public function destroy(Request $request, int $id): JsonResponse { $this->ensureContext($request); return ApiResponse::handle( fn () => $this->service->delete($id), __('message.deleted') ); } }