smsService = $smsService; } /** * ارسال کد تأیید به شماره موبایل * POST /api/v1/verify/send-code */ public function sendCode(Request $request): JsonResponse { $validated = $request->validate([ 'phone' => ['required', 'string', 'regex:/^09[0-9]{9}$/'], ]); $result = $this->smsService->sendVerificationCode($validated['phone']); if ($result['success']) { return response()->json([ 'success' => true, 'message' => 'کد تأیید با موفقیت ارسال شد', ]); } return response()->json([ 'success' => false, 'message' => $result['message'], ], 400); } /** * بررسی کد تأیید * POST /api/v1/verify/check-code */ public function checkCode(Request $request): JsonResponse { $validated = $request->validate([ 'phone' => ['required', 'string', 'regex:/^09[0-9]{9}$/'], 'code' => ['required', 'string', 'size:5'], ]); $isValid = $this->smsService->verifyCode($validated['phone'], $validated['code']); if ($isValid) { // به‌روزرسانی شماره موبایل کاربر (اختیاری) $user = Auth::user(); if ($user && $user->phone !== $validated['phone']) { $user->update(['phone' => $validated['phone']]); } return response()->json([ 'success' => true, 'message' => 'کد تأیید صحیح است', ]); } return response()->json([ 'success' => false, 'message' => 'کد تأیید نادرست است یا منقضی شده است', ], 400); } /** * ارسال پیامک به شماره موبایل (برای استفاده داخلی) * POST /api/v1/verify/send-sms */ public function sendSms(Request $request): JsonResponse { $validated = $request->validate([ 'phone' => ['required', 'string', 'regex:/^09[0-9]{9}$/'], 'message' => ['required', 'string', 'max:500'], ]); $result = $this->smsService->send($validated['phone'], $validated['message']); if ($result['success']) { return response()->json([ 'success' => true, 'message' => 'پیامک با موفقیت ارسال شد', 'cost' => $result['cost'] ?? 0, ]); } return response()->json([ 'success' => false, 'message' => $result['message'], ], 400); } }