# -*- coding: utf-8 -*-
# /var/www/html/fluxo_suporte.py

import json
from utils_hibrido import registrar_log, enviar_whatsapp, obter_mensagem_db
from utils_hibrido import consultar_cliente_por_id, verificar_status_online

def processar(conn, cursor, job, atendimento, configs, mensagem_bruta):
    atendimento_id = atendimento['id']
    numero = atendimento['cliente_numero']
    estado = atendimento.get('estado_atual', 'INICIO')
    
    raw_ctx = atendimento.get('contexto_json')
    ctx = json.loads(raw_ctx) if raw_ctx else {}
    id_cliente = ctx.get('id_cliente')
    
    registrar_log('SUPORTE', f"Estado: {estado}")
    
    if estado == 'INICIO':
        if not id_cliente:
            enviar_whatsapp(configs, numero, "Não foi possível identificar seu cadastro. Transferindo para atendente.")
            cursor.execute("UPDATE atendimentos SET status = 'fila', fluxo_atual = 'HUMANO' WHERE id = %s", (atendimento_id,))
            conn.commit()
            return
        
        # Busca dados do cliente
        dados = consultar_cliente_por_id(cursor, id_cliente)
        
        if dados:
            status = dados.get('status', 'desconhecido')
            login = dados.get('login', '')
            
            # Verifica se está online
            online = verificar_status_online(cursor, login) if login else None
            
            if status == 'Ativo':
                mensagem = "Sua internet está ativa no sistema. "
                if online:
                    mensagem += "Você está conectado no momento. Se ainda está com problemas, reinicie o modem por 2 minutos."
                else:
                    mensagem += "Seu modem parece estar offline. Verifique as luzes do equipamento e reinicie-o."
                enviar_whatsapp(configs, numero, mensagem)
            elif status == 'Avisado':
                enviar_whatsapp(configs, numero, "Sua velocidade foi reduzida devido a atraso no pagamento. Regularize seus boletos no setor Financeiro para reativar a velocidade total.")
            elif status == 'Bloqueado':
                enviar_whatsapp(configs, numero, "Sua internet está bloqueada por falta de pagamento. Regularize a situação no setor Financeiro ou solicite desbloqueio em confiança.")
            else:
                enviar_whatsapp(configs, numero, "Vou transferir você para um atendente especializado. Por favor, aguarde.")
                cursor.execute("UPDATE atendimentos SET status = 'fila', fluxo_atual = 'HUMANO', setor_id = 4 WHERE id = %s", (atendimento_id,))
                conn.commit()
                return
        else:
            enviar_whatsapp(configs, numero, "Não foi possível consultar seu cadastro. Transferindo para atendente.")
            cursor.execute("UPDATE atendimentos SET status = 'fila', fluxo_atual = 'HUMANO', setor_id = 4 WHERE id = %s", (atendimento_id,))
            conn.commit()
            return
        
        # Pergunta se precisa de mais ajuda
        cursor.execute("""
            UPDATE atendimentos
            SET fluxo_atual = 'CLASSIFICACAO', estado_atual = 'AGUARDANDO_MENSAGEM', contexto_json = '{}'
            WHERE id = %s
        """, (atendimento_id,))
        conn.commit()
        enviar_whatsapp(configs, numero, "Precisa de mais alguma ajuda?")
