🤖 DIRECTRIZ DE ARQUITECTURA (IA)
Este documento es una norma de diseño (Source of Truth). Su propósito es instruir a los desarrolladores y a los Agentes de Inteligencia Artificial sobre cómo programar, estructurar y auto-auditar las bases de datos e interfaces del ecosistema. No es un manual operativo para el usuario final.
Tabla: sys_usuarios
Definición estructural y diccionario de datos de la tabla central de usuarios del ecosistema.
👤 1. Traducción para Humanos
Esta es la tabla madre de todas las personas que interactúan con el ERP. Piensa en ella como la lista maestra de empleados, instructores y alumnos. Sirve para saber quién es quién, cuál es su correo, y si su cuenta está activa o fue bloqueada (dada de baja).
🔗 2. Relaciones y Convergencias
Esta tabla es el corazón del sistema y converge con casi todas las demás:
- Con
sys_roles: Para saber qué nivel de permisos tiene cada usuario (Ej: El usuario ‘Pedro’ es ‘Gerente’). - Con
jur_contratos: Para saber qué usuario aprobó o firmó un contrato. - Con todo el sistema: Cualquier acción (crear un documento, aprobar una vacación) quedará registrada asociando el ID de esta tabla para saber «quién lo hizo».
⚙️ 3. Automatizaciones (Back-End)
- Baja Lógica: Cuando se elimina un usuario, no se borra físicamente. Un Trigger automático cambia su estado a
False(Baja lógica) para no destruir el historial de lo que hizo en el pasado.
🖥️ 4. Vistas e Interfaces (UX/UI)
- Pantallas y Filtros: Se visualiza en el Módulo de Gestión de Usuarios bajo la pestaña «Directorio Activo», donde RRHH puede resetear contraseñas y ver perfiles. Diferentes roles verán diferentes columnas ocultas.
💻 5. Estructura Técnica (Para la IA)
| Columna | Tipo de Dato | Descripción / Restricción |
|---|---|---|
id |
UUID | Primary Key. Sincronizado con Supabase Auth (auth.users). |
email |
VARCHAR | Unique, Not Null. |
nombre_completo |
VARCHAR | Not Null. |
rol_id |
INT | Foreign Key a tabla sys_roles. |
estado |
BOOLEAN | True = Activo, False = Inactivo (Baja Lógica). |
created_at |
TIMESTAMP | Default NOW(). |

