From 0e2a7e9a206fd33f0c7a53196ad8054204ec0449 Mon Sep 17 00:00:00 2001
From: Juan Felipe Duarte <70235683+DuarteJFelipe@users.noreply.github.com>
Date: Thu, 16 Oct 2025 14:46:17 -0500
Subject: [PATCH] Copy tarifas and promos on user registration
When a new user registers with a referral code, their tarifas and promos are now copied from the referring user. Also refactored Usuario_promo and Usuario_tarifa models to use fillable attributes and improved method formatting. Added Swiper CSS/JS to app layout.
---
.../Auth/RegisteredUserController.php | 32 ++++++++++++++++---
app/Models/Usuario_promo.php | 6 ++--
app/Models/Usuario_tarifa.php | 10 +++---
resources/views/layouts/app.blade.php | 2 ++
4 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php
index 249fc9b..5b6c28b 100755
--- a/app/Http/Controllers/Auth/RegisteredUserController.php
+++ b/app/Http/Controllers/Auth/RegisteredUserController.php
@@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
use App\Models\Role;
use App\Models\Saldo;
use App\Models\User;
+use App\Models\Usuario_promo;
+use App\Models\Usuario_tarifa;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Http\Request;
@@ -42,7 +44,6 @@ class RegisteredUserController extends Controller
'password.confirmed' => 'La confirmación de la contraseña no coincide.',
'password.min' => 'La contraseña debe tener al menos 8 caracteres.',
'referral_code.required' => 'El código de referido es obligatorio.',
-
'password.confirmed' => 'Las contraseñas no coinciden.',
]);
@@ -54,15 +55,12 @@ class RegisteredUserController extends Controller
// Determinar el rol del nuevo usuario
if ($referralUser) {
if ($referralUser->rol->nombre === 'super') {
- // Si el referido es "super", asignar "cliente"
$rolCliente = Role::where('nombre', 'cliente')->first();
$rol_id = $rolCliente ? $rolCliente->id : null;
} else {
- // Si no es super, tomar el mismo rol del referido
$rol_id = $referralUser->rol_id;
}
} else {
- // Si no tiene referral_code, asignar rol por defecto (cliente)
$rolCliente = Role::where('nombre', 'cliente')->first();
$rol_id = $rolCliente ? $rolCliente->id : null;
}
@@ -75,6 +73,32 @@ class RegisteredUserController extends Controller
'parent_id' => $referralUser ? $referralUser->id : null,
]);
+ if ($referralUser) {
+ // Tarifas
+ $tarifas = $referralUser->usuario_tarifas;
+ foreach ($tarifas as $tarifa) {
+ Usuario_tarifa::create([
+ 'usuario_id' => $user->id,
+ 'tarifa_id' => $tarifa->tarifa_id,
+ 'precio' => $tarifa->precio,
+ 'visible' => $tarifa->visible,
+ 'utilidad' => $tarifa->utilidad,
+ ]);
+ }
+
+ // Promos
+ $promos = $referralUser->usuario_promos;
+ foreach ($promos as $promo) {
+ Usuario_promo::create([
+ 'usuario_id' => $user->id,
+ 'promocion_id' => $promo->promocion_id,
+ 'precio' => $promo->precio,
+ 'visible' => $promo->visible,
+ 'utilidad' => $promo->utilidad,
+ ]);
+ }
+ }
+
Saldo::create([
'usuario_id' => $user->id,
'valor' => 0,
diff --git a/app/Models/Usuario_promo.php b/app/Models/Usuario_promo.php
index 85f7248..4bd93d5 100755
--- a/app/Models/Usuario_promo.php
+++ b/app/Models/Usuario_promo.php
@@ -9,7 +9,7 @@ class Usuario_promo extends Model
{
use HasFactory;
- protected $hidden = [
+ protected $fillable = [
'usuario_id',
'promocion_id',
'precio',
@@ -17,12 +17,12 @@ class Usuario_promo extends Model
'visible',
];
- public function usuario()
+ public function usuario()
{
return $this->belongsTo(User::class, 'usuario_id');
}
- public function promocion()
+ public function promocion()
{
return $this->belongsTo(Promociones::class, 'promocion_id');
}
diff --git a/app/Models/Usuario_tarifa.php b/app/Models/Usuario_tarifa.php
index 59bdf3e..1e96a58 100755
--- a/app/Models/Usuario_tarifa.php
+++ b/app/Models/Usuario_tarifa.php
@@ -16,11 +16,13 @@ class Usuario_tarifa extends Model
'visible',
];
- public function usuario(){
- return $this ->belongsTo(User::class,'usuario_id');
+ public function usuario()
+ {
+ return $this->belongsTo(User::class, 'usuario_id');
}
- public function tarifa(){
- return $this ->belongsTo(Tarifas::class,'tarifa_id');
+ public function tarifa()
+ {
+ return $this->belongsTo(Tarifas::class, 'tarifa_id');
}
}
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 3f588bf..b7c1e54 100755
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -13,6 +13,7 @@
+
@vite(['resources/css/app.css', 'resources/js/app.js'])
@@ -35,6 +36,7 @@
+
@livewireScripts