"""
Menú base para la interfaz de comandos
"""

import os
import logging

logger = logging.getLogger(__name__)

class BaseCommandProcessor:
    def __init__(self):
        self.running = True

    def start(self):
        """Inicia el procesador de comandos"""
        while self.running:
            try:
                self._show_menu()
                cmd = input("\nComando: ").strip().upper()
                self._process_command(cmd)
            except EOFError:
                break
            except Exception as e:
                logger.error(f"Error procesando comando: {e}")

    def _show_menu(self):
        """Método a ser implementado por las clases hijas"""
        raise NotImplementedError

    def _process_command(self, cmd):
        """Método a ser implementado por las clases hijas"""
        raise NotImplementedError

    def _clear_screen(self):
        """Limpia la pantalla"""
        os.system('cls' if os.name == 'nt' else 'clear')