24 Commits

Author SHA1 Message Date
Marco Gallegos
d66e8118eb feat: refactor schedule storage to vanity_hr schema, update onboarding command to /registro, and enhance horario flow with short name collection 2025-12-20 22:43:34 -06:00
Marco Gallegos
338108d7b7 feat: Implementar finalización del flujo /horario
Este commit introduce la lógica para procesar y guardar los datos recopilados por el flujo de conversación .

Cambios:

1.  **Nueva tabla de base de datos**: Se ha añadido una nueva tabla  a la base de datos  para almacenar los horarios de trabajo de los usuarios.
2.  **Nuevo modelo SQLAlchemy**: Se ha creado el modelo  en .
3.  **Nuevo **: Se ha creado un nuevo módulo para centralizar la lógica de finalización de los flujos de conversación.
    *   La función  determina qué acción tomar en función del flujo que ha finalizado.
    *   La función  se encarga de:
        *   Enviar los datos del horario al .
        *   Guardar (o actualizar si ya existe) el horario en la nueva tabla .
4.  **Actualización de **: El constructor de flujos ahora llama a  cuando una conversación llega a su fin, conectando la lógica de conversación con la de procesamiento de datos.
2025-12-20 10:31:17 -06:00
Marco Gallegos
60dddc147b refactor: Eliminar el módulo de impresión
Se ha eliminado el módulo  y todas sus referencias en la documentación (), ya que no se utilizará en el flujo de trabajo actual del bot.
2025-12-20 10:18:55 -06:00
Marco Gallegos
b68cb14837 refactor: Implement dynamic conversation flow builder from JSON
This commit refactors the bot's architecture to dynamically load and build conversation flows from JSON files instead of hardcoding them in Python.

- Added  to read flow definitions from the  directory and dynamically build s.
- Refactored  to use the new flow builder and load all conversation handlers at startup.
- Moved hardcoded links to environment variables for better configuration.
- Updated  to support conditional branching for 'Other' options, using a  field to define state transitions.
- Updated  with the new link variables.
2025-12-20 09:56:28 -06:00
Marco Gallegos
72204d54cf 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.
2025-12-20 09:28:13 -06:00
Marco Gallegos
1151d3af3d feat: Implement direct MySQL database integration for onboarding and duplicate checks, add Gemini AI support, and update webhook and email configurations. 2025-12-18 15:58:01 -06:00
google-labs-jules[bot]
4e2b6335a6 feat: Implement multi-database architecture
This commit introduces a three-database architecture to the application,
as specified in the `db_logic.md` file.

The changes include:
- A SQL initialization script (`db/init/init.sql`) to create the
  `USERS_ALMA`, `vanity_hr`, and `vanity_attendance` databases and their
  respective tables.
- SQLAlchemy models for all tables, organized into separate files
  within the `models` directory.
- Refactoring of the database connection logic in `modules/database.py`
  to support connections to all three databases.
- Creation of a `modules/logger.py` to handle request logging to the
  `USERS_ALMA` database.
- Updates to `docker-compose.yml` to mount the initialization script and
  build the bot image locally.
- Updates to `.env.example` to include the new database environment
  variables.
- Restoration of the data dictionary to `db_tasks.md`.
2025-12-18 19:36:40 +00:00
Marco Gallegos
3b94c2f90d feat: Add check for existing users and dynamic menu
- Add a check to see if a user's Telegram chat ID already exists in a Google Sheet.
- If the user is already registered, the 'welcome' option is hidden from the main menu.
- Added gspread and google-auth-oauthlib to requirements.txt.
- Modified database.py to support Google Service Account credentials from environment variables.
- Updated .env.example with the new environment variables.
2025-12-15 19:19:37 -06:00
Marco Gallegos
ae8436b01e feat: Integrate Google Sheets for duplicate chat ID verification and update main actions keyboard logic 2025-12-15 19:11:09 -06:00
Marco Gallegos
aad973a9c7 feat: Replace UUID with secure short ID generation for record IDs in webhook payload 2025-12-15 14:17:30 -06:00
Marco Gallegos
d0e13da706 Allow conversation re-entry for flows 2025-12-15 12:30:46 -06:00
Marco Gallegos
68848cee49 feat: Update Dockerfile to use Python 3.12 and modify docker-compose to specify bot image directly; enhance onboarding role selection prompts. 2025-12-15 10:28:32 -06:00
Marco Gallegos
8422a874d9 feat: Implement a new links menu, consolidate the main action keyboard into a ui module, and update employee ID generation logic. 2025-12-15 09:49:50 -06:00
Marco Gallegos
ebbb6c3f00 refactor: Remove printing feature, enhance onboarding derivations, and update bot commands. 2025-12-14 22:32:18 -06:00
Marco Gallegos
29b2605072 feat: Implement detailed onboarding data capture, refactor HR request date processing, and enhance bot command menu. 2025-12-14 22:09:23 -06:00
Marco Gallegos
cbfcee557a feat: Add database health checks and host configuration, enhance the start command with a quick reply keyboard, and improve general text cleaning. 2025-12-14 15:33:47 -06:00
Marco Gallegos
cf128960cb feat: Add print event webhooks and interactive keyboards for HR requests, refactor webhook handling, and remove unused IMAP configuration. 2025-12-14 14:26:13 -06:00
Marco Gallegos
220b78886d feat: Enhance database connection robustness, update onboarding command to /welcome, and remove /socia_finder functionality. 2025-12-14 11:53:45 -06:00
Marco Gallegos
c0793db73c feat: Implement AI-powered permit reason classification and add comprehensive project documentation. 2025-12-14 11:42:05 -06:00
Marco Gallegos
7ce9bacce1 feat: Configure environment variables, refactor onboarding conversation states, and expose database port in Docker Compose. 2025-12-14 10:04:34 -06:00
google-labs-jules[bot]
93ec6d335c refactor: Implement Docker, MySQL logging, and SMTP email
This commit refactors the application to run in a containerized environment using Docker and Docker Compose. It also introduces a MySQL database for logging user requests and updates the print functionality to send emails via SMTP.

Key changes:
- Added `Dockerfile` and `docker-compose.yml` for containerization.
- Integrated a MySQL database for logging user requests.
- Updated the print module to send files as email attachments via SMTP.
- Added and updated configuration files (`.env`, `.env.example`) to manage secrets and environment variables.
- Removed hardcoded credentials from version control.
- Updated `Readme.md` with new setup and execution instructions.
2025-12-14 03:44:45 +00:00
google-labs-jules[bot]
fec578bd7c feat: Dockerize application and add MySQL logging
This commit introduces Docker and Docker Compose to containerize the application and orchestrate it with a MySQL database.

Key changes include:
- Added a `Dockerfile` to create a container for the Python bot.
- Created a `docker-compose.yml` file to manage the bot and MySQL services.
- Added a `modules/database.py` module to handle database connections and logging with SQLAlchemy.
- Integrated request logging into all command handlers.
- Updated `requirements.txt` with necessary dependencies for MySQL.
- Updated `.env` and `.gitignore` to manage database credentials securely.
- Updated `Readme.md` with instructions on how to run the application using Docker Compose.
2025-12-14 03:28:56 +00:00
Marco Gallegos
4653eda462 feat: add .gitignore with common patterns for Python projects, virtual environments, logs, and editor configurations. 2025-12-13 19:06:49 -06:00
Marco Gallegos
1cb382b4ef first commit 2025-12-13 19:06:14 -06:00