Los usuarios (mesero, cocina, bar) creados automáticamente al crear un local ahora usan el dominio del email del admin que crea el local.
- Admin con email:
admin@malafama.com - Usuarios generados:
mesero@pizzahut.localcocina@pizzahut.localbar@pizzahut.local
- Admin con email:
admin@malafama.com - Usuarios generados:
mesero@malafama.comcocina@malafama.combar@malafama.com
-
Nueva función
extraerDominioEmail(email)- Extrae el dominio de un email (ej: "malafama.com" de "admin@malafama.com")
- Fallback a "local.com" si el formato es inválido
-
Nueva función
generarEmailUnico(rol, dominio)- Genera emails únicos para cada rol (mesero, cocina, bar)
- Verifica si el email ya existe en la BD
- Si existe, agrega un contador:
mesero1@malafama.com,mesero2@malafama.com, etc.
-
Modificación en
crearLocal()- Obtiene el dominio del admin:
const adminEmail = req.user.email; - Extrae dominio:
const dominio = extraerDominioEmail(adminEmail); - Genera emails únicos para cada usuario usando el dominio del admin
- Retorna los usuarios generados en la respuesta
- Obtiene el dominio del admin:
-
Importación de API directa
import api from '../../src/services/api';
-
Nuevo estado para usuarios generados
const [usuariosGenerados, setUsuariosGenerados] = useState<Array<{localId: string, usuarios: any[], localNombre: string}>>([]);
-
Modificación en
handleCrearLocal()- Llama a
api.post('/locales', payload)en lugar delocalService.crear() - Captura la respuesta completa incluyendo usuarios generados
- Almacena los usuarios en el estado para mostrar en resumen
- Llama a
-
Modificación en
handleCrearCadena()- Para cada local creado, captura los usuarios generados
- Almacena todos los usuarios en
usuariosGenerados
-
Actualización del Step 5 (Resumen de Cadena)
- Muestra los usuarios generados desde el backend
- Formato:
{rol}@{dominio}o{rol}{numero}@{dominio}si hay duplicados - Ejemplo:
mesero@malafama.com,mesero1@malafama.com, etc.
-
Nueva función
resetearOnboarding()- Limpia todos los estados cuando se completa el onboarding
- Asegura que el siguiente onboarding comience limpio
- Admin con email
admin@pizzahut.comcrea un local "Pizza Hut La Paz" - Backend genera automáticamente:
mesero@pizzahut.comcocina@pizzahut.combar@pizzahut.com
- Frontend muestra estos emails en el resumen
- Admin con email
admin@pizzahut.comcrea segundo local "Pizza Hut Santa Cruz" - Backend intenta generar:
mesero@pizzahut.com→ Ya existe, generamesero1@pizzahut.comcocina@pizzahut.com→ Ya existe, generacocina1@pizzahut.combar@pizzahut.com→ Ya existe, generabar1@pizzahut.com
- Frontend muestra todos los usuarios generados en resumen de cadena
- Admin llena:
- Nombre cadena: "Pizza Hut"
- Cantidad locales: 3
- Direcciones: 3 locales diferentes
- Sistema crea los 3 locales y genera usuarios con numeración:
- Frontend muestra resumen con todos los usuarios
- Backend corriendo en
http://localhost:3000(o configurado) - Admin autenticado con email:
admin@dominiodeltest.com - Base de datos limpia o sin usuarios mesero/cocina/bar existentes
- Abrir app móvil
- Ir a admin > Crear Local
- Ingresar datos del local
- Completar onboarding (mesas, proveedor, productos)
- Verificar: En resumen, se muestran emails con dominio
@dominiodeltest.com - Crear segundo local con mismos datos
- Verificar: Segundo local muestra emails numerados (mesero1@, cocina1@, bar1@)
- ✅ Backend genera emails con dominio del admin
- ✅ Frontend captura y muestra emails generados
- ✅ Duplicados se manejan con sufijos numéricos
- ✅ Resumen de cadena muestra todos los usuarios correctos
- ✅ Estados se limpian después de completar onboarding