# Componentes del Sistema

## 📁 Archivos en este directorio

### **menu-config.php**
Define la configuración completa del menú del sistema. Contiene todos los módulos y opciones disponibles.

**Modificar este archivo para:**
- Agregar nuevas opciones al menú
- Cambiar URLs de las opciones
- Agregar nuevos módulos

### **permissions.php**
Define qué permisos tiene cada tipo de usuario (`us_tipo`).

**Modificar este archivo para:**
- Cambiar permisos de un rol
- Agregar nuevos roles
- Agregar permisos especiales por empresa

### **render-menu.php**
Funciones para renderizar el menú del sidebar según los permisos del usuario.

**No modificar a menos que necesites cambiar la estructura HTML del menú.**

### **sidebar.php**
Componente que renderiza el sidebar completo (header + menú).

**No modificar a menos que necesites cambiar la estructura del sidebar.**

### **navbar.php**
Componente que renderiza el navbar superior.

**No modificar a menos que necesites cambiar la estructura del navbar.**

### **under-construction.php**
Página placeholder para vistas en desarrollo. Muestra un mensaje de "Seguimos Trabajando" con diseño profesional.

**Características:**
- El botón "Volver al Inicio" redirige automáticamente a la vista principal según el rol del usuario
- Soporta personalización de título, descripción e icono
- Permite especificar una URL personalizada de regreso si es necesario

**Uso:**
```php
require_once __DIR__ . '/includes/under-construction.php';

// Opción 1: Uso básico (redirige automáticamente según el rol)
renderUnderConstruction('Título de la Vista', 'Descripción opcional');

// Opción 2: Con icono personalizado
renderUnderConstruction('Título', 'Descripción', 'fas fa-cog');

// Opción 3: Con URL personalizada de regreso
renderUnderConstruction('Título', 'Descripción', 'fas fa-tools', 'mi-vista-personalizada.php');
```

**Redirecciones automáticas por rol:**
- **Administrador (1)**: `dashboardmain.php`
- **Distribuidor (2)**: `dashboardmain.php` (o `reportes/mantenimiento/mantenimiento-por-vehiculo.php` si `id_emp == '482'`)
- **Usuarios especiales (8, 9, 10)**: `dashboardmain.php` (o `reportes/mantenimiento/mantenimiento-por-vehiculo.php` si `id_emp == '482'`)
- **Usuario móvil urbano (12)**: `ubic_gps_actual_movil_urb_osm.php`
- **Usuario temperatura (13)**: `rep_temperatura.php`
- **Sin sesión**: `signin.php`
- **Por defecto**: `dashboardmain.php`

---

## 🔧 Cómo Agregar Nueva Opción al Menú

1. Edita `menu-config.php`
2. Agrega el item en el módulo correspondiente:

```php
'operaciones' => [
    'title' => 'Operaciones',
    'icon' => 'c-blue-500 fas fa-map-marker-alt',
    'items' => [
        // ... items existentes ...
        [
            'label' => 'Mi Nueva Opción',
            'url' => 'mi-nueva-vista.php',
            'permission' => 'operaciones.mi_nueva_opcion'
        ]
    ]
]
```

3. Edita `permissions.php` y agrega el permiso a los roles que deben verlo:

```php
case '1': // Admin
    $permissions = [
        // ... permisos existentes ...
        'operaciones.mi_nueva_opcion',
    ];
    break;
```

---

## 🔒 Cómo Agregar Nuevo Rol

1. Edita `permissions.php`
2. Agrega un nuevo `case` en `getUserPermissions()`:

```php
case '14': // Nuevo tipo de usuario
    $permissions = [
        'operaciones.monitoreo_tiempo_real',
        'reportes.gerencial'
    ];
    break;
```

3. El menú se generará automáticamente según estos permisos.

