service->listAll($request->integer('limit', 100)); return $this->successResponse(payload: TbrCalculationResource::collection($items)); } public function preview(TbrCalculationRequest $request): JsonResponse { $payload = $this->service->preview($request->validated()); return $this->successResponse(payload: $payload); } public function previewBatch(TbrCalculationBatchRequest $request): JsonResponse { $payload = $this->service->previewBatch( (int) $request->validated('reference_year'), (int) $request->validated('reference_month'), ); return $this->successResponse(payload: $payload); } public function store(TbrCalculationRequest $request): JsonResponse { $item = $this->service->calculate($request->validated()); return $this->successResponse(payload: new TbrCalculationResource($item), message: __('messages.created'), code: 201); } public function show(int $id): JsonResponse { $item = $this->service->findById($id); return $this->successResponse(payload: new TbrCalculationResource($item)); } public function generateReceivable(int $id): JsonResponse { $receive = $this->service->generateReceivable($id); return $this->successResponse( payload: new FranchiseeAccountReceiveResource($receive), message: 'Conta a Receber gerada com sucesso.', code: 201, ); } public function generateBatch(TbrCalculationBatchRequest $request): JsonResponse { $result = $this->service->generateBatch( (int) $request->validated('reference_year'), (int) $request->validated('reference_month'), $request->validated('unit_ids'), ); return $this->successResponse( payload: $result, message: sprintf( '%d título(s) gerado(s), %d pulado(s), %d erro(s).', $result['generated_count'], $result['skipped_count'], $result['error_count'], ), code: 201, ); } }