activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $filters = array_filter($request->only(['status', 'origin']), fn ($v) => $v !== null); $items = $this->service->list($unitId, $filters); return $this->successResponse(payload: UnitAccountPayableResource::collection($items)); } public function storeMe(StoreUnitPayableRequest $request): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $item = $this->service->createManual($unitId, $request->validated()); return $this->successResponse( payload: new UnitAccountPayableResource($item), message: __('messages.created'), code: 201, ); } public function settleMe(SettlePayableRequest $request, int $id): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $payable = $this->service->findForUnit($id, $unitId); if (!$payable) { return $this->errorResponse(message: 'Conta a pagar não encontrada', code: 404); } $item = $this->service->settle($payable, $request->validated()); return $this->successResponse( payload: new UnitAccountPayableResource($item), message: 'Baixa realizada com sucesso', ); } public function reopenMe(int $id): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $payable = $this->service->findForUnit($id, $unitId); if (!$payable) { return $this->errorResponse(message: 'Conta a pagar não encontrada', code: 404); } $item = $this->service->reopen($payable); return $this->successResponse( payload: new UnitAccountPayableResource($item), message: 'Conta reaberta', ); } }