08 🅿️ MÓDULO ESPACIOS Completo - Gestión de Plazas de Parqueo | Laravel Sistema Real

Duración: 49 min
Módulo: 🚗 Módulos Operacionales de Inventario Lección 1 de 4

Descripción

🅿️ LECCIÓN 08: MÓDULO ESPACIOS Completo - Gestión de Plazas de Parqueo | Laravel Sistema Real

Esta lección cubre la creación y gestión completa del Módulo de Espacios (Plazas de Parqueo), incluyendo la creación de la tabla, las funcionalidades CRUD básicas (Crear y Modificar Estado) y una vista de listado visualmente representativa.

1. Preparación y Migración del Módulo de Espacios 🛠️

  • 1.1. Creación de Componentes: Se utiliza el comando Artisan para generar el Modelo (Espacio), el Controlador con recursos básicos y la Migración [01:41].
  • 1.2. Estructura de la Tabla espacios:
    • numero (string/VARCHAR): Identificador del espacio (ej. P1-E1, 5) [03:25]. Se define como único para evitar duplicados [18:49].
    • estado (ENUM): Define el estado actual del espacio. Opciones: libre, ocupado, y mantenimiento [05:46].
    • Nota: No se incluye Soft Delete, ya que la lógica de la aplicación requiere cambiar el estado a mantenimiento en lugar de eliminar el registro [07:58].

2. Funcionalidad de Creación (create y store) y Listado (index) 📝

  • 2.1. Configuración de Rutas y Menú:
    • Se añade el nuevo ítem "Espacios" al menú de navegación con un icono de parking [08:41].
    • Se definen las rutas de recursos para el nuevo controlador EspacioController [09:41].
  • 2.2. Vista de Creación (create.blade.php): Se desarrolla el formulario para registrar un nuevo espacio, solicitando el número y el estado inicial (por defecto libre) [16:36].
  • 2.3. Lógica de Guardado (store):
    • Se implementa la validación de que el campo numero es requerido y único en la tabla espacios [00:19:33 - 00:23:19].
    • Se crea y guarda el nuevo objeto Espacio con el número y estado proporcionados [20:48].
  • 2.4. Listado Visual (index.blade.php):
    • Se consulta la lista de espacios y se itera sobre ellos en la vista [00:11:48 - 00:24:54].
    • Se utiliza el componente col de Bootstrap para un diseño responsive que ajusta automáticamente los espacios en filas [00:30:15 - 00:30:41].
    • Representación Visual: Cada espacio se muestra como un botón con el número y el estado [25:30].
    • Indicadores de Estado (Clases de Botón):
      • Libre: Botón de color verde (success) [31:30].
      • Mantenimiento: Botón de color amarillo (warning) [32:25].
      • Ocupado: Botón de color rojo (danger) [32:54].

3. Funcionalidad de Modificación de Estado (update) 🔄

  • 3.1. Modal de Cambio de Estado:
    • Se implementa un modal que se abre al hacer clic en el botón de espacio [00:35:56 - 00:36:46].
    • El modal contiene un formulario que usa el método PUT y la ruta edit/update [39:00].
    • Muestra un select para elegir el nuevo estado (libre, ocupado, mantenimiento) [40:48].
  • 3.2. Lógica de Actualización (update):
    • Se busca el Espacio por su ID [44:52].
    • Se actualiza solo el campo estado con el valor enviado desde el modal [45:15].
    • Se guarda el cambio con $espacio->save() y se retorna un mensaje de éxito [45:26].