paymentService->index($request->validated()); return ApiResponse::handle('message.fetched', $result); } /** * 결제 요약 통계 */ public function summary(PaymentIndexRequest $request): JsonResponse { $result = $this->paymentService->summary($request->validated()); return ApiResponse::handle('message.fetched', $result); } /** * 결제 상세 */ public function show(int $id): JsonResponse { $result = $this->paymentService->show($id); return ApiResponse::handle('message.fetched', $result); } /** * 결제 등록 (수동) */ public function store(PaymentStoreRequest $request): JsonResponse { $result = $this->paymentService->store($request->validated()); return ApiResponse::handle('message.created', $result, 201); } /** * 결제 완료 처리 */ public function complete(PaymentActionRequest $request, int $id): JsonResponse { $result = $this->paymentService->complete($id, $request->validated()['transaction_id'] ?? null); return ApiResponse::handle('message.payment.completed', $result); } /** * 결제 취소 */ public function cancel(PaymentActionRequest $request, int $id): JsonResponse { $result = $this->paymentService->cancel($id, $request->validated()['reason'] ?? null); return ApiResponse::handle('message.payment.cancelled', $result); } /** * 환불 처리 */ public function refund(PaymentActionRequest $request, int $id): JsonResponse { $result = $this->paymentService->refund($id, $request->validated()['reason'] ?? null); return ApiResponse::handle('message.payment.refunded', $result); } }