from abc import ABC, abstractmethod class OltDriver(ABC): """ Classe base abstrata para drivers de OLT. Todos os drivers específicos devem herdar desta classe e implementar seus métodos abstratos. """ def __init__(self, host, username, password, **kwargs): self.host = host self.username = username self.password = password self.options = kwargs @abstractmethod def connect(self): """ Estabelece a conexão com a OLT (SSH/Telnet). Deve retornar o objeto de conexão (ex: Netmiko connection handler). """ pass @abstractmethod def get_olt_stats(self): """ Coleta estatísticas completas da OLT (Cards > PONs > ONTs). Deve retornar um dicionário hierárquico: { "FGLT": [ { "cardIndex": "...", "pons": [...] } ] } """ pass