"""
Sistema de alertas para notificar problemas y datos anómalos.

Este módulo proporciona funcionalidades para registrar y notificar diferentes tipos de alertas,
incluyendo errores de conexión y anomalías en los datos de los medidores.

Desarrolladores:
- Para añadir nuevos tipos de alertas, agregue métodos adicionales a la clase AlertSystem
- Considere implementar notificaciones adicionales (por ejemplo, envío de correos electrónicos o SMS)
  para alertas críticas
"""

import logging
from colorama import Fore, Style

class AlertSystem:
    def __init__(self):
        self.logger = logging.getLogger("AlertSystem")

    def connection_error(self, host, port, error):
        """
        Registra un error de conexión.
        
        Args:
            host (str): Dirección IP del medidor.
            port (int): Puerto del medidor.
            error (str): Descripción del error.
        """
        self.logger.error(f"{Fore.RED}ALERTA: Error de conexión en {host}:{port} - {error}{Style.RESET_ALL}")

    def data_anomaly(self, host, port, message):
        """
        Registra una anomalía en los datos recibidos.
        
        Args:
            host (str): Dirección IP del medidor.
            port (int): Puerto del medidor.
            message (str): Descripción de la anomalía.
        """
        self.logger.warning(f"{Fore.YELLOW}ALERTA: Anomalía detectada en datos de {host}:{port} - {message}{Style.RESET_ALL}")

    # Aquí se pueden añadir más métodos para diferentes tipos de alertas
