mirror of
https://github.com/marcogll/telegram_new_socias.git
synced 2026-01-13 13:15:16 +00:00
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.
54 lines
2.0 KiB
Python
54 lines
2.0 KiB
Python
from sqlalchemy import create_engine, Column, Integer, String, Date, Time, BigInteger, ForeignKey
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy.orm import relationship
|
|
|
|
Base = declarative_base()
|
|
|
|
class AsistenciaRegistros(Base):
|
|
__tablename__ = 'asistencia_registros'
|
|
__table_args__ = {'schema': 'vanity_attendance'}
|
|
|
|
id_asistencia = Column(Integer, primary_key=True, autoincrement=True)
|
|
numero_empleado = Column(String(15), ForeignKey('vanity_hr.data_empleadas.numero_empleado'))
|
|
fecha = Column(Date)
|
|
hora_entrada_real = Column(Time)
|
|
hora_salida_real = Column(Time)
|
|
minutos_retraso = Column(Integer)
|
|
minutos_extra = Column(Integer)
|
|
sucursal_registro = Column(String(50))
|
|
telegram_id_usado = Column(BigInteger)
|
|
empleada = relationship("DataEmpleadas", backref="asistencia_registros")
|
|
|
|
class HorarioEmpleadas(Base):
|
|
__tablename__ = 'horario_empleadas'
|
|
__table_args__ = {'schema': 'vanity_attendance'}
|
|
|
|
id_horario = Column(Integer, primary_key=True, autoincrement=True)
|
|
numero_empleado = Column(String(15), ForeignKey('vanity_hr.data_empleadas.numero_empleado'))
|
|
telegram_id = Column(BigInteger)
|
|
dia_semana = Column(String(20))
|
|
hora_entrada_teorica = Column(Time)
|
|
hora_salida_teorica = Column(Time)
|
|
empleada = relationship("DataEmpleadas", backref="horario_empleadas")
|
|
|
|
class HorariosConfigurados(Base):
|
|
__tablename__ = 'horarios_configurados'
|
|
__table_args__ = {'schema': 'vanity_attendance'}
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
telegram_id = Column(BigInteger, nullable=False)
|
|
timestamp = Column(Time)
|
|
short_name = Column(String(100))
|
|
monday_in = Column(Time)
|
|
monday_out = Column(Time)
|
|
tuesday_in = Column(Time)
|
|
tuesday_out = Column(Time)
|
|
wednesday_in = Column(Time)
|
|
wednesday_out = Column(Time)
|
|
thursday_in = Column(Time)
|
|
thursday_out = Column(Time)
|
|
friday_in = Column(Time)
|
|
friday_out = Column(Time)
|
|
saturday_in = Column(Time)
|
|
saturday_out = Column(Time)
|