
CREATE TABLE usuarios_mv
(
    usuarios_mv_id          INT UNSIGNED AUTO_INCREMENT,                                        -- Identificador único de usuario
    username_mv             VARCHAR(50) NOT NULL UNIQUE COMMENT '',                                        -- Nombre de usuario único
    password_mv             VARCHAR(255) NOT NULL,                                              -- Contraseña del usuario (debe ser encriptada)
    email_mv                VARCHAR(100) NOT NULL UNIQUE,                                       -- Correo electrónico del usuario
    nombre_completo         VARCHAR(100) NOT NULL,                                              -- Nombre completo del usuario
    estado                  ENUM('activo', 'inactivo', 'bloqueado') NOT NULL DEFAULT 'activo',  -- Estado del usuario
    tipo                    ENUM('usuario', 'bodega', 'admin') NOT NULL DEFAULT 'usuario',               -- Tipo de usuario
    fecha_registro          DATETIME DEFAULT CURRENT_TIMESTAMP,                                 -- Fecha de registro del usuario
    ultimo_acceso           DATETIME DEFAULT CURRENT_TIMESTAMP,                                 -- Fecha del último acceso
    token_sesion            VARCHAR(255),                                                       -- Token de sesión único para el seguimiento de la sesión
    intentos_fallidos       INT UNSIGNED DEFAULT 0,                                             -- Contador de intentos fallidos de inicio de sesión
    bloqueo_expiracion      DATETIME,                                                           -- Fecha de expiración de bloqueo por intentos fallidos
    ip_ultimo_acceso        VARCHAR(45),                                                        -- IP del último acceso (IPv6 compatible)
    navegador_ultimo_acceso VARCHAR(255),                                                       -- Navegador del último acceso
    PRIMARY KEY (usuarios_mv_id)
);