only(['status']), fn ($v) => $v !== null); return $this->successResponse( payload: CompanyAccountReceivableResource::collection($this->service->list($filters)), ); } public function store(StoreCompanyReceivableRequest $request): JsonResponse { $item = $this->service->createManual($request->validated()); return $this->successResponse( payload: new CompanyAccountReceivableResource($item), message: __('messages.created'), code: 201, ); } public function settle(SettleReceivableRequest $request, int $id): JsonResponse { $receivable = $this->service->findById($id); if (!$receivable) { return $this->errorResponse(message: 'Recebível não encontrado', code: 404); } $item = $this->service->settle($receivable, $request->validated()); return $this->successResponse( payload: new CompanyAccountReceivableResource($item), message: 'Baixa realizada com sucesso', ); } public function reopen(int $id): JsonResponse { $receivable = $this->service->findById($id); if (!$receivable) { return $this->errorResponse(message: 'Recebível não encontrado', code: 404); } $item = $this->service->reopen($receivable); return $this->successResponse( payload: new CompanyAccountReceivableResource($item), message: 'Recebível reaberto', ); } }