#!/usr/bin/python3
import json
import subprocess

CONFIG_PATH = "/srv/datalogger_mmr/config_mmr.json"

def load_config():
    with open(CONFIG_PATH, "r") as f:
        return json.load(f)

def save_config(config):
    with open(CONFIG_PATH, "w") as f:
        json.dump(config, f, indent=4)

def show_status(config):
    sensors = config["SENSORS_ENABLED"]
    print("\n=== ESTADO ACTUAL DE LOS SENSORES ===\n")
    for key, val in sensors.items():
        estado = "ACTIVADO" if val else "DESACTIVADO"
        print(f"{key}  --->  {estado}")
    print("\n")

def toggle_sensor(config, sensor):
    current = config["SENSORS_ENABLED"][sensor]
    config["SENSORS_ENABLED"][sensor] = not current
    save_config(config)

    print(f"\n>>> {sensor} ahora está: {'ACTIVADO' if not current else 'DESACTIVADO'}\n")
    subprocess.call(["systemctl", "restart", "mining-server.service"])

def app():
    config = load_config()

    while True:
        print("\n=== MENU DE ACTIVACIÓN / DESACTIVACIÓN DE SENSORES ===\n")
        show_status(config)

        print("Seleccione qué desea modificar:")
        print(" 1. flow_left")
        print(" 2. flow_right")
        print(" 3. ltr")
        print(" 4. ltc") 
        print(" 5. rtr")
        print(" 6. rtc")
        print(" 7. Salir\n")

        option = input("Ingrese opción: ")

        mapping = {
            "1": "flow_left",
            "2": "flow_right",
            "3": "ltr",
            "4": "ltc",
            "5": "rtr",
            "6": "rtc"
        }

        if option in mapping:
            toggle_sensor(config, mapping[option])
        elif option == "7":
            break
        else:
            print("\nOpción no válida\n")

if __name__ == "__main__":
    app()
