feat: Implementar registro de usuarios en base de datos dual

Este commit introduce las siguientes mejoras en el proceso de onboarding:

1.  **Registro en Dos Fases**: El flujo de onboarding ahora registra a las nuevas usuarias en dos bases de datos distintas para mejorar la seguridad y la integridad de los datos:
    *   ****: Se crea un registro básico para la autenticación y el control de acceso del bot.
    *   ****: Se guarda un perfil completo y detallado de la empleada en la tabla .

2.  **Modelos SQLAlchemy**: Se han actualizado los modelos de SQLAlchemy ( y ) para reflejar la estructura de las tablas de la base de datos.

3.  **Lógica de Base de Datos Centralizada**: El módulo  ahora contiene la lógica para gestionar el registro dual, asegurando que ambas operaciones se realicen de forma atómica.

4.  **Flujo de Onboarding Actualizado**: El script de  ha sido modificado para recopilar la información necesaria y pasarla al nuevo sistema de registro.

5.  **Configuración de Docker**: Se ha ajustado el  y los scripts de inicialización de la base de datos ( y ) para soportar el nuevo esquema de base de datos dual.

Estos cambios aseguran un proceso de registro más robusto, seguro y escalable, sentando las bases para futuras funcionalidades de RRHH.
This commit is contained in:
Marco Gallegos
2025-12-20 09:28:13 -06:00
parent 9cb9513c41
commit 72204d54cf
5 changed files with 242 additions and 31 deletions

View File

@@ -406,16 +406,15 @@ async def finalizar(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
# --- REGISTRO EN BASE DE DATOS ---
db_ok = register_user({
**meta,
**payload["metadata"],
**payload["candidato"],
**payload["contacto"]
"meta": meta,
**payload
})
chat_id_log = payload.get("metadata", {}).get("chat_id", meta.get("telegram_id"))
if db_ok:
logging.info(f"Usuario {meta['chat_id']} registrado en la base de datos.")
logging.info(f"Usuario {chat_id_log} registrado en la base de datos.")
else:
logging.error(f"Fallo al registrar usuario {meta['chat_id']} en la base de datos.")
logging.error(f"Fallo al registrar usuario {chat_id_log} en la base de datos.")
if enviado:
await update.message.reply_text(