# Proyecto HeatingEvent Este proyecto gestiona eventos relacionados con el encendido y apagado de sistemas de calefacción, ofreciendo tres funcionalidades principales: una aplicación web, un bot de Telegram y un comando para importar datos desde un archivo CSV a la base de datos. ## Comandos disponibles ### 1. **Comando Web** Este comando inicia un servidor web que permite visualizar los eventos de calefacción a través de una interfaz web. #### Uso: ```bash $ go run cmd/web/main.go ``` #### Opciones: - WEB_PORT: Puerto en el que se ejecuta el servidor web. Puedes configurarlo en el archivo `.env`. ### 2. Comando Bot Este comando inicia un bot de Telegram que permite interactuar con el sistema de calefacción a través de mensajes. #### Uso: ```sh $ go run cmd/bot/main.go ``` #### Opciones: - TELEGRAM_TOKEN: Token de acceso del bot de Telegram. - TELEGRAM_CHATID: ID del chat de Telegram donde el bot enviará los mensajes. ### 3. Comando Import Este comando importa los datos de un archivo CSV (con formato específico) a la base de datos SQLite, creando eventos de encendido y apagado en función de la información proporcionada en el archivo. #### Uso: ``` $ go run cmd/import/main.go -f /ruta/al/archivo.csv -f, --file: Especifica la ruta del archivo CSV a importar. --dry-run: Muestra los datos que se importarían sin hacer cambios en la base de datos (útil para verificar la información antes de insertarla). ``` #### Configuración 1. Crear archivo .env Copia el archivo .env.sample a .env y configura las variables de entorno necesarias: ```sh $ cp .env.sample .env ``` Luego edita el archivo .env con los valores correspondientes: ```ini # Telegram Bot Configuration TELEGRAM_TOKEN=xxx:yyy TELEGRAM_CHATID=123123123 # Web Server Configuration WEB_PORT=9900 ``` 2. Base de Datos El proyecto utiliza una base de datos SQLite para almacenar los eventos de calefacción. La configuración de la base de datos se gestiona automáticamente a través del código en el archivo `internal/config/db.go`. Asegúrate de que el archivo de la base de datos se encuentra en la ubicación correcta para que la conexión funcione correctamente. ### Dependencias Este proyecto utiliza varias dependencias de Go. Asegúrate de tenerlas instaladas y configuradas correctamente: ```sh $ go mod tidy ``` ### Estructura del Proyecto ```sh . ├── cmd │ ├── web # Comando para la aplicación web │ ├── bot # Comando para el bot de Telegram │ └── import # Comando para importar CSV a la base de datos ├── internal │ ├── config # Configuración de la base de datos y otros parámetros │ └── model # Modelos y lógica de negocio ├── .env.sample # Archivo de ejemplo para configuración del entorno └── README.md # Este archivo ``` ### Contribución Si deseas contribuir a este proyecto, por favor sigue estos pasos: 1. Haz un fork del proyecto. 2. Crea una nueva rama (git checkout -b feature-nueva-caracteristica). 3. Realiza tus cambios y haz commit de ellos (git commit -am 'Añadir nueva característica'). 4. Haz push a la rama (git push origin feature-nueva-caracteristica). 5. Crea un pull request describiendo tus cambios.