avance del registro de negocio con google mapas
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
||||
|
||||
use App\Mail\VerificationEmail;
|
||||
use App\Models\Category;
|
||||
use App\Models\CategoryTranslation;
|
||||
use App\Models\Shop;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -25,9 +26,12 @@ class TypeBusinessController extends Controller
|
||||
public function index()
|
||||
{
|
||||
|
||||
$categories = Category::all();
|
||||
$categories = CategoryTranslation::all();
|
||||
|
||||
return view('frontend.registro-comercio.views.business.index', compact('categories'));
|
||||
$apiKey = env('GOOGLE_MAPS_API_KEY');
|
||||
|
||||
|
||||
return view('frontend.registro-comercio.views.business.index', compact('categories', 'apiKey'));
|
||||
|
||||
}
|
||||
|
||||
@@ -47,49 +51,97 @@ class TypeBusinessController extends Controller
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request, User $user)
|
||||
public function store(Request $request, User $user, Shop $shop)
|
||||
{
|
||||
|
||||
|
||||
// Validación de los campos de registro
|
||||
$validator = Validator::make($request->all(), [
|
||||
// $validator = Validator::make($request->all(), [
|
||||
// 'name' => ['required'],
|
||||
// 'address' => ['required'],
|
||||
// 'categories_id' => ['required'],
|
||||
// 'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class, 'regex:/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.(com|do|net|com.do)$/'],
|
||||
// 'password' => ['required', 'confirmed', Password::defaults()],
|
||||
// 'terms' => ['required'], // Agrega esta línea para hacer el campo 'terms' requerido
|
||||
// 'g-recaptcha-response' => ['required', function ($attribute, $value, $fail) {
|
||||
// $recaptcha = new Recaptcha(env('RECAPTCHA_SECRET_KEY'));
|
||||
// $recaptcha->verify($value);
|
||||
// }],
|
||||
// ]);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => ['required'],
|
||||
'address' => ['required'],
|
||||
'categories_id' => ['required'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class, 'regex:/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.(com|do|net|com.do)$/'],
|
||||
'email' => [
|
||||
'required',
|
||||
'string',
|
||||
'email',
|
||||
'max:255',
|
||||
'unique:'.User::class,
|
||||
//VALIDA EL TIPO DE extencion del dominio permitido
|
||||
'regex:/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.(com|do|net|com.do)$/',
|
||||
//valida si el correo existe, a traves de los dns
|
||||
//La función filter_var($value, FILTER_VALIDATE_EMAIL) verifica si la cadena de correo electrónico es una dirección de correo electrónico válida según el filtro FILTER_VALIDATE_EMAIL de PHP.
|
||||
//La función checkdnsrr($domain, 'MX') verifica si el dominio del correo electrónico tiene registros MX en el sistema de nombres de dominio (DNS). Esto se hace utilizando la función checkdnsrr de PHP con el tipo de registro 'MX'.
|
||||
//Los tipos de registro DNS válidos son: 'A', 'MX', 'NS', 'SOA', 'PTR', 'CNAME', 'AAAA', 'A6', 'SRV', 'NAPTR', 'TXT', 'ANY'.
|
||||
function ($attribute, $value, $fail) {
|
||||
$domain = explode('@', $value)[1];
|
||||
if (!filter_var($value, FILTER_VALIDATE_EMAIL) || !checkdnsrr($domain, 'MX')) {
|
||||
$fail('El correo electrónico no existe.');
|
||||
}
|
||||
},
|
||||
],
|
||||
'password' => ['required', 'confirmed', Password::defaults()],
|
||||
'terms' => ['required'], // Agrega esta línea para hacer el campo 'terms' requerido
|
||||
'g-recaptcha-response' => ['required', function ($attribute, $value, $fail) {
|
||||
$recaptcha = new Recaptcha(env('RECAPTCHA_SECRET_KEY'));
|
||||
$recaptcha->verify($value);
|
||||
}],
|
||||
'terms' => ['required'],
|
||||
'g-recaptcha-response' => [
|
||||
'required',
|
||||
function ($attribute, $value, $fail) {
|
||||
$recaptcha = new Recaptcha(env('RECAPTCHA_SECRET_KEY'));
|
||||
$recaptcha->verify($value);
|
||||
},
|
||||
],
|
||||
]);
|
||||
|
||||
// if ($validator->fails()) {
|
||||
// // Si la validación falla, puedes redirigir o devolver una respuesta con los errores
|
||||
// return redirect()->back()->withErrors($validator)->withInput();
|
||||
// }
|
||||
if ($validator->fails()) {
|
||||
// Si la validación falla, puedes redirigir o devolver una respuesta con los errores
|
||||
return redirect()->back()->withErrors($validator)->withInput();
|
||||
}
|
||||
|
||||
// $confirmation_code = Str::random(25);
|
||||
$confirmation_code = Str::random(25);
|
||||
|
||||
// $user = new User();
|
||||
// $user->email = $request->input('email');
|
||||
// $user->password = Hash::make($request->input('password'));
|
||||
// $user->user_type = 'seller';
|
||||
// $user->confirmation_code = $confirmation_code;
|
||||
// $user->save();
|
||||
$user = new User();
|
||||
$user->email = $request->input('email');
|
||||
$user->password = Hash::make($request->input('password'));
|
||||
$user->user_type = 'seller';
|
||||
$user->confirmation_code = $confirmation_code;
|
||||
$user->category_translation_id = $request->input('categories_id');
|
||||
$user->save();
|
||||
|
||||
// Guardar los campos en el modelo Shop
|
||||
$shop->user_id = $user->id;
|
||||
$shop->name = $request->name;
|
||||
$shop->address = $request->address;
|
||||
$shop->delivery_pickup_latitude = $request->latitude;
|
||||
$shop->delivery_pickup_longitude = $request->longitude;
|
||||
// Aquí puedes guardar otros campos si los tienes
|
||||
|
||||
// Guardar el modelo Shop en la base de datos
|
||||
$shop->save();
|
||||
|
||||
|
||||
// Mail::to($user->email)->send(new VerificationEmail($user));
|
||||
Mail::to($user->email)->send(new VerificationEmail($user));
|
||||
|
||||
// // Intentar iniciar sesión automáticamente
|
||||
// if (Auth::attempt($request->only('email', 'password'))) {
|
||||
// if (Auth::user()->email_verified_at) {
|
||||
// // La cuenta está verificada, redirige a la página deseada
|
||||
// return redirect()->route('shop.view.signup.complete');
|
||||
// } else {
|
||||
// // La cuenta no está verificada, redirige a la página de verificación de correo electrónico
|
||||
// return redirect()->route('shop.view.email.verification');
|
||||
// }
|
||||
// }
|
||||
// Intentar iniciar sesión automáticamente
|
||||
if (Auth::attempt($request->only('email', 'password'))) {
|
||||
if (Auth::user()->email_verified_at) {
|
||||
// La cuenta está verificada, redirige a la página deseada
|
||||
return redirect()->route('seller.dashboard');
|
||||
} else {
|
||||
// La cuenta no está verificada, redirige a la página de verificación de correo electrónico
|
||||
return redirect()->route('shop.view.email.verification');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,41 +189,41 @@ class TypeBusinessController extends Controller
|
||||
//
|
||||
}
|
||||
|
||||
public function business_complete_index()
|
||||
{
|
||||
$user = auth()->user();
|
||||
// public function business_complete_index()
|
||||
// {
|
||||
// $user = auth()->user();
|
||||
|
||||
return view('frontend.registro-comercio.views.business.business_complete', compact('user'));
|
||||
}
|
||||
// return view('frontend.registro-comercio.views.business.business_complete', compact('user'));
|
||||
// }
|
||||
|
||||
public function business_complete_store(Request $request, Shop $shop)
|
||||
{
|
||||
// Validación de los campos
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => ['required'],
|
||||
'address' => ['required'],
|
||||
]);
|
||||
// public function business_complete_store(Request $request, Shop $shop)
|
||||
// {
|
||||
// // Validación de los campos
|
||||
// $validator = Validator::make($request->all(), [
|
||||
// 'name' => ['required'],
|
||||
// 'address' => ['required'],
|
||||
// ]);
|
||||
|
||||
// Si la validación falla, puedes redirigir de vuelta con los errores
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withErrors($validator)->withInput();
|
||||
}
|
||||
// // Si la validación falla, puedes redirigir de vuelta con los errores
|
||||
// if ($validator->fails()) {
|
||||
// return redirect()->back()->withErrors($validator)->withInput();
|
||||
// }
|
||||
|
||||
// Guardar los campos en el modelo Shop
|
||||
$shop->user_id = $request->user()->id;
|
||||
$shop->name = $request->name;
|
||||
$shop->address = $request->address;
|
||||
// Aquí puedes guardar otros campos si los tienes
|
||||
// // Guardar los campos en el modelo Shop
|
||||
// $shop->user_id = $request->user()->id;
|
||||
// $shop->name = $request->name;
|
||||
// $shop->address = $request->address;
|
||||
// // Aquí puedes guardar otros campos si los tienes
|
||||
|
||||
// Guardar el modelo Shop en la base de datos
|
||||
$shop->save();
|
||||
// // Guardar el modelo Shop en la base de datos
|
||||
// $shop->save();
|
||||
|
||||
// Marcar el campo "shop_verified_at" como verificado en el modelo User
|
||||
$request->user()->shop_verified_at = now(); // Puedes usar la función "now()" para establecer la fecha y hora actual
|
||||
// // Marcar el campo "shop_verified_at" como verificado en el modelo User
|
||||
// $request->user()->shop_verified_at = now(); // Puedes usar la función "now()" para establecer la fecha y hora actual
|
||||
|
||||
// Guardar el modelo User en la base de datos
|
||||
$request->user()->save();
|
||||
// // Guardar el modelo User en la base de datos
|
||||
// $request->user()->save();
|
||||
|
||||
return redirect()->route('seller.dashboard');
|
||||
}
|
||||
// return redirect()->route('seller.dashboard');
|
||||
// }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user