mirror of
https://github.com/marcogll/telegram_new_socias.git
synced 2026-01-13 21:25:16 +00:00
Creates a new `db_tasks.md` file that defines the database schema for the bot. This documentation includes table definitions for: - `users`: To store user information. - `permissions`: To manage user permissions for specific actions. - `welcome_flow_data`: To store data collected during the `/welcome` onboarding flow. The file also explains how the bot will interact with these tables to manage users, permissions, and the onboarding process.
5.5 KiB
5.5 KiB
Definición de Tablas y Campos para la Base de Datos
Este documento describe la estructura de la base de datos necesaria para el bot Vanessa, incluyendo tablas para usuarios, permisos y el flujo de bienvenida.
1. Tabla de Usuarios (users)
Esta tabla almacena la información básica de cada usuario que interactúa con el bot.
| Campo | Tipo | Descripción |
|---|---|---|
id |
INT (PK) |
Identificador único del usuario. |
telegram_id |
BIGINT |
ID de Telegram del usuario. |
username |
VARCHAR(255) |
Nombre de usuario de Telegram. |
first_name |
VARCHAR(255) |
Nombre del usuario. |
last_name |
VARCHAR(255) |
Apellido del usuario. |
is_active |
BOOLEAN |
Indica si el usuario está activo (default true). |
created_at |
DATETIME |
Fecha y hora de creación del registro. |
updated_at |
DATETIME |
Fecha y hora de la última actualización. |
2. Tabla de Permisos (permissions)
Esta tabla gestiona los permisos de los usuarios para realizar acciones específicas.
| Campo | Tipo | Descripción |
|---|---|---|
id |
INT (PK) |
Identificador único del permiso. |
user_id |
INT (FK) |
Referencia al id del usuario en la tabla users. |
can_update_records |
BOOLEAN |
Permite al usuario actualizar registros (default false). |
can_access_reports |
BOOLEAN |
Permite al usuario acceder a reportes (default false). |
created_at |
DATETIME |
Fecha y hora de creación del registro. |
updated_at |
DATETIME |
Fecha y hora de la última actualización. |
3. Tabla de Datos del Flujo de Bienvenida (welcome_flow_data)
Esta tabla almacena los datos recopilados durante el flujo de /welcome.
| Campo | Tipo | Descripción |
|---|---|---|
id |
INT (PK) |
Identificador único del registro. |
user_id |
INT (FK) |
Referencia al id del usuario en la tabla users. |
full_name |
VARCHAR(255) |
Nombre completo del usuario. |
curp |
VARCHAR(18) |
CURP del usuario. |
rfc |
VARCHAR(13) |
RFC del usuario. |
nss |
VARCHAR(11) |
Número de Seguridad Social (NSS) del usuario. |
address |
TEXT |
Dirección del usuario. |
bank_account |
VARCHAR(20) |
Número de cuenta bancaria del usuario. |
phone_number |
VARCHAR(15) |
Número de teléfono del usuario. |
status |
VARCHAR(50) |
Estado del flujo (e.g., 'in_progress', 'completed'). |
created_at |
DATETIME |
Fecha y hora de creación del registro. |
updated_at |
DATETIME |
Fecha y hora de la última actualización. |
4. Interacción con la Base de Datos
A continuación, se describe cómo el bot interactúa con estas tablas.
a. Gestión de Usuarios
- Creación de Usuario: Cuando un nuevo usuario interactúa con el bot por primera vez (e.g., al usar
/start), se crea un nuevo registro en la tablauserscon sutelegram_id,username,first_nameylast_name. - Actualización de Usuario: La información del usuario se puede actualizar si cambia su nombre de usuario, nombre o apellido en Telegram.
- Estado del Usuario: El campo
is_activese utiliza para desactivar a un usuario si deja la empresa, sin eliminar sus registros.
b. Flujo de /welcome
- Inicio del Flujo: Cuando un usuario inicia el flujo de
/welcome, se crea un registro en la tablawelcome_flow_datacon eluser_idcorrespondiente y un estado dein_progress. - Recopilación de Datos: A medida que el usuario proporciona su información (nombre, CURP, RFC, etc.), los campos correspondientes en la tabla
welcome_flow_datase actualizan. - Finalización del Flujo: Una vez que el usuario ha proporcionado toda la información, el estado en
welcome_flow_datase actualiza acompleted.
c. Gestión de Permisos
- Asignación de Permisos: Los permisos se asignan a los usuarios a través de la tabla
permissions. Por defecto, los usuarios no tienen permisos para actualizar registros o acceder a reportes. - Verificación de Permisos: Antes de ejecutar comandos que requieran permisos especiales (e.g., un comando para actualizar la información de otro usuario), el bot consulta la tabla
permissionspara verificar si el usuario tiene los permisos necesarios. - Actualización de Registros: Si un usuario tiene el permiso
can_update_recordsestablecido entrue, podrá modificar la información en la tablawelcome_flow_datade otros usuarios.