activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $filters = $request->only(['status', 'student_id', 'type']); $items = $this->service->list($unitId, array_filter($filters, fn ($v) => $v !== null)); return $this->successResponse(payload: UnitReceivableResource::collection($items)); } public function settleMe(SettleReceivableRequest $request, int $id): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $installment = $this->service->findForUnit($id, $unitId); if (!$installment) { return $this->errorResponse(message: 'Recebível não encontrado', code: 404); } $item = $this->service->settle($installment, $request->validated()); return $this->successResponse( payload: new UnitReceivableResource($item), message: 'Baixa realizada com sucesso', ); } public function chargeMe(int $id): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $installment = $this->service->findForUnit($id, $unitId); if (!$installment) { return $this->errorResponse(message: 'Recebível não encontrado', code: 404); } $item = $this->service->generateCharge($installment); return $this->successResponse( payload: new UnitReceivableResource($item), message: 'Cobrança gerada no Asaas', ); } public function reopenMe(int $id): JsonResponse { $unitId = $this->activeUnitId(); if (!$unitId) { return $this->errorResponse(message: 'Unidade não encontrada', code: 404); } $installment = $this->service->findForUnit($id, $unitId); if (!$installment) { return $this->errorResponse(message: 'Recebível não encontrado', code: 404); } $item = $this->service->reopen($installment); return $this->successResponse( payload: new UnitReceivableResource($item), message: 'Recebível reaberto', ); } }