09 Módulo de Empleados 👥 Laravel 13: CRUD con Usuarios, Roles y Avatar con las Tablas Relacionadas

Duración: 37 min
Módulo: Módulo Empleados Lección 1 de 2

Descripción

Lección 9: 👥 Módulo de Empleados: Relaciones Complejas y Gestión de Avatares 🖼️

En esta sesión, aprendemos a manejar la lógica de negocio donde un empleado no es solo un registro de datos personales, sino un usuario del sistema vinculado a una sede específica.

📋 Contenido de la Lección

  • 🔗 Arquitectura de Base de Datos:
    • Definimos la tabla empleados con llaves foráneas hacia users (para el login) y sucursales (para asignar su lugar de trabajo) [08:43].
    • Implementamos la restricción RESTRICT en lugar de CASCADE para las relaciones, evitando la pérdida accidental de historial laboral si se borra una sucursal [12:22].
  • ⚡ Lógica de Registro "Todo en Uno":
    • Desarrollamos un formulario inteligente que, con un solo clic, registra al empleado en la tabla empleados, crea su cuenta de acceso en la tabla users y le asigna automáticamente el rol de empleado [26:50].
    • Establecemos el número de documento del empleado como su contraseña por defecto [24:37].
  • 📸 Manejo de Archivos (Avatar):
    • Integramos un campo input file con previsualización en tiempo real.
    • Configuramos el almacenamiento de imágenes en storage/app/public/empleados y usamos php artisan storage:link para hacerlas accesibles desde la web [03:41].
  • 🛠️ Refactorización de Interfaz:
    • Personalizamos los modales de creación y edición para que los campos como "Correo" y "Sucursal" aparezcan en el orden correcto y con iconos alineados [28:42].
  • 🧪 Depuración de Lógica de Eliminación:
    • Freddy identifica un detalle crítico: al eliminar un empleado, el registro del usuario asociado permanecía en la base de datos. Se discute la necesidad de ajustar el controlador para limpiar todas las tablas relacionadas [36:31].

🎯 Objetivos de la Sesión

  • Integrar tres tablas fundamentales en un solo proceso de negocio [13:13].
  • Implementar la subida y gestión de imágenes de perfil de manera segura [34:42].
  • Optimizar los Seeders para que el logo del sistema y los ajustes básicos no se pierdan al refrescar la base de datos [08:19].

💡 Tips del Instructor

  • Seguridad de Datos: Es mejor desactivar un empleado (cambiar su estado a "Inactivo") que eliminarlo físicamente, para preservar el historial de ventas o movimientos realizados por esa persona [11:52].
  • Uso de IA: La IA puede acelerar el desarrollo, pero el programador debe estar atento a detalles como la eliminación en cascada manual cuando la base de datos no lo hace automáticamente [36:50].