<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RequestOtpRequest extends FormRequest
{
    public function authorize(): bool
    {
        return true;
    }

    public function rules(): array
    {
        return [
            'mobile' => ['required', 'string', 'regex:/^[6-9]\d{9}$/'],
        ];
    }

    public function messages(): array
    {
        return [
            'mobile.regex' => 'Please enter a valid 10-digit mobile number starting with 6-9.',
        ];
    }

    protected function prepareForValidation(): void
    {
        if ($this->has('mobile')) {
            $mobile = (string) $this->input('mobile');
            
            // Remove all whitespace
            $mobile = preg_replace('/\s+/', '', $mobile);
            
            // Remove +91 prefix if present (case-insensitive, handle variations)
            $mobile = preg_replace('/^(\+91|91|0091)/i', '', $mobile);
            
            // Keep only digits
            $mobile = preg_replace('/\D/', '', $mobile);
            
            // Take only first 10 digits
            $mobile = substr($mobile, 0, 10);
            
            // Force merge to ensure it's set correctly
            $this->merge([
                'mobile' => $mobile,
            ]);
            
            // Also replace in the request data directly
            $this->replace([
                'mobile' => $mobile,
            ]);
        }
    }
}
