#INVERMAR DEVELOPMENT

from pymongo import MongoClient
import time

# Conéctate a tu base de datos MongoDB (ajusta la URL según tu configuración)
client = MongoClient("mongodb://localhost:27017/")  # Cambia la URI si es necesario
db = client["NANOOX"]  # Reemplaza con el nombre real de tu base de datos
collection = db["sensores"]  # Nombre de la colección

campos_solo_en_primer_json = [
    "elapsed_time",
    "InStartChange",
    "O2_color",
    "SO2_color",
    "Temp",
    "last_RLY",
    "PRESS",
    "last_measure_vdf",
    "last_measure_hf",
    "last_measure_press",
    "SO2_bckp",
    "sal",
    "aviot"
]
for key in campos_solo_en_primer_json:
    print("pasando al primer sanitizador")
    #  Buscar y eliminar el campo "latest_measurements" dentro de cada objeto en el array "sensores"
    result = collection.update_many(
        {},
        {
            "$unset": {f"sensores.$[].{key}": ""}
        }
    )

    # Mostrar resultados
    print(f"Documentos modificados: {result.modified_count}")

    # Verificar si aún quedan documentos con el campo "latest_measurements"
    docs_restantes = collection.count_documents({f"sensores.{key}": {"$exists": True}})
    if docs_restantes == 0:
        print(f" Todos los campos {key} han sido eliminados correctamente.")
    else:
        print(f" Aún quedan {docs_restantes} documentos con {key}.")

    db = client["NANOOX"]  # Reemplázalo con tu base de datos real
    collection = db["sensores"]  # Nombre de la colección

    print("pasando al segundo sanitizdor")

    #  Buscar y actualizar solo documentos que contienen "can_id"
    result = collection.update_many(
        {"can_id": {"$exists": True}},  # Solo documentos que tienen "can_id"
        {
            "$unset": {f"bombas.$[].$[].{key}": ""}  # Elimina en todos los elementos de "bombas"
        }
    )

    # Mostrar resultado
    print(f"Documentos modificados: {result.modified_count}")

    # Verificar si aún quedan documentos con el campo "latest_measurements"
    docs_restantes = collection.count_documents({
        "can_id": {"$exists": True},
        f"bombas.{key}": {"$exists": True}
    })

    if docs_restantes == 0:
        print(f" Todos los campos {key} han sido eliminados correctamente en los documentos con 'can_id'.")
    else:
        print(f" Aún quedan {docs_restantes} documentos con {key}  en 'bombas'.")
    print(f"Finalizando {key}")
    time.sleep(5)