from GestoreTasksToDoList import ToDoList
def menu():
    print("\n--- MENU ---")
    print("1. Aggiungi task")
    print("2. Rimuovi task")
    print("3. Mostra tasks")
    print("4. Cambia priorità task")
    print("5. Esci")

def avvia_programma():
    lista = ToDoList()

    while True:
        menu()
        scelta = input("Scegli un'opzione: ")

        if scelta == "1":
            task = input("Inserisci il task: ")
            priorita = input("Inserisci la priorità (Alta, Normale, Bassa): ")
            lista.aggiungi_task(task, priorita)
        elif scelta == "2":
            lista.mostra_tasks()
            try:
                indice = int(input("Inserisci l'indice del task da rimuovere: "))
                lista.rimuovi_task(indice)
            except ValueError:
                print("⚠️ Inserisci un numero valido.")
        elif scelta == "3":
            lista.mostra_tasks()
        elif scelta == "4":
            lista.mostra_tasks()
            try:
                indice = int(input("Numero del task: "))
                nuova_priorita = input("Nuova priorità (Alta, Normale, Bassa): ")
                lista.cambia_priorita(indice, nuova_priorita)
            except ValueError:
                print("⚠️ Inserisci un numero valido.")
        elif scelta == "5":
            print("👋 Uscita dal programma...")
            break


# Avvio del programma
if __name__ == "__main__":
    avvia_programma()


class ToDoList:
    def __init__(self):
        self.tasks = []  # lista dei task come dizionari

    def aggiungi_task(self, task, priorita="Normale"):
        self.tasks.append({"testo": task, "priorita": priorita})
        print(f"✅ Aggiunto: {task} (Priorità: {priorita})")

    def rimuovi_task(self, indice):
        if 1 <= indice <= len(self.tasks):
            rimosso = self.tasks.pop(indice - 1)
            print(f"🗑️ Rimosso: {rimosso['testo']}")
        else:
            print("⚠️ Indice non valido.")

    def mostra_tasks(self):
        if not self.tasks:
            print("📭 Nessun task presente.")
        else:
            print("\n📋 To-Do List:")
            for i, task in enumerate(self.tasks, start=1):
                prio = task["priorita"]
                evidenza = "⭐" if prio.lower() == "alta" else ""
                print(f"{i}. {task['testo']} (Priorità: {prio}) {evidenza}")

    def cambia_priorita(self, indice, nuova_priorita):
        if 1 <= indice <= len(self.tasks):
            self.tasks[indice - 1]["priorita"] = nuova_priorita
            print(f"✏️ Priorità aggiornata per '{self.tasks[indice - 1]['testo']}' ➝ {nuova_priorita}")
        else:
            print("⚠️ Indice non valido.")