# Esercizione
# Creare un'applicazione bancaria che permette di effettuare
# un prelievo o un deposito monetario.
#
# 1. Il programma deve permettere di effettuare il login chiedendo,
#    separatamente, il nome utente e la password. Ci sono solo tre
#    utenti registrati (vedi sotto). Se il nome utente o la password
#    sono errati (ovvero, la coppia non è corretta oppure il nome
#    utente non esiste), printare un messaggio di errore e terminare
#    il programma.
#
# 2. Se il login è corretto, stampare il bilancio attuale del conto
#    e chiedere se l'operazione desiderata è "prelievo" oppure
#    "deposito". Qualunque altro inserimento risulta nella
#    terminazione del programma con un print di errore.
#    Aiuto: op = input("Prelievo (p) o deposito (d)? ")  # L'utente
#           quindi deve inserire la stringa "p" o "d", tutto il
#           resto non è valido
#   
# 3. Se l'operazione è di deposito, chiedere la cifra (si assume che
#    l'utente non faccia lo stupido e inserisca sempre un numero
#    intero), aggiornare il totale del conto e stamparlo a video,
#    terminando, poi, il programma.
#
# 4. Se l'operazione è di prelievo, invece, chiedere la cifra (anche
#    qui si assume che l'utente inserisca sempre un numero intero) e
#    verificare che il bilancio sia sufficiente. Se lo è, detrarlo
#    dal totale e stampare il nuovo bilancio a video, terminando,
#    poi, il programma. Se non lo è terminare il programma con un
#    messaggio di errore.
#
#
# Note e consigli:
# - Si chiede di commentare adeguatamente e abbondantemente il codice.
# - Si consiglia di eseguire molto spesso il codice per verificare
#   il risultato di ciò che si sta scrivendo.
# - Si ricorda di ragionare in modo generico, e non tenendo in
#   considerazione uno specifico utente. Anche perché quelli presenti
#   nel database qui sotto potrebbero essere modificati, o potrebbero
#   essere molti di più. Sono solo un esempio per poter fare i test.
# - Potrebbe essere necessario chiamare la funzione exit(0) che termina
#   il programma nel punto in cui viene chiamata
#
# -----===== DATABASE =====-----

# Utente 1
user1 = "nick"
psw1 = "ildrugodrago12"
bilancio1 = 200

# Utente 2
user2 = "biero"
psw2 = "FerrariPurosangue"
bilancio2 = 3000

# Utente 3
user3 = "ElonioMuschio"
psw3 = "mars_emperor"
bilancio3 = 10000

# -----===== SOLUZIONE =====-----
is_user1 = False
is_user2 = False
is_user3 = False

nome_utente = input("Inserisci il nome utente: ")
password = input("Inserisci la password: ")

if nome_utente != user1 and nome_utente != user2 and nome_utente != user3:
    print("Utente non esistente")
else:
    if nome_utente == user1 and password == psw1:
        is_user1 = True
        print(f"Il bilancio attuale è di {bilancio1} euro")
    elif nome_utente == user2 and password == psw2:
        is_user2 = True
        print(f"Il bilancio attuale è di {bilancio2} euro")
    elif nome_utente == user3 and password == psw3:
        is_user3 = True
        print(f"Il bilancio attuale è di {bilancio3} euro")
    else:
        print("Password errata")

    if is_user1 or is_user2 or is_user3:
        operazione = input("Prelievo (p) o deposito (d)? ")

        if operazione == "d":
            cifra = int(input("Inserisci la cifra da depositare: "))
            if is_user1:
                bilancio1 += cifra
                print(f"Il nuovo bilancio è di {bilancio1} euro")
            elif is_user2:
                bilancio2 += cifra
                print(f"Il nuovo bilancio è di {bilancio2} euro")
            elif is_user3:
                bilancio3 += cifra
                print(f"Il nuovo bilancio è di {bilancio3} euro")
        elif operazione == "p":
            cifra = int(input("Inserisci la cifra da prelevare: "))
            if is_user1:
                if bilancio1 < cifra:
                    print("Bilancio insufficiente")
                else:
                    bilancio1 -= cifra
                    print(f"Il nuovo bilancio è di {bilancio1} euro")
            elif is_user2:
                if bilancio2 < cifra:
                    print("Bilancio insufficiente")
                else:
                    bilancio2 -= cifra
                    print(f"Il nuovo bilancio è di {bilancio2} euro")
            elif is_user3:
                if bilancio3 < cifra:
                    print("Bilancio insufficiente")
                else:
                    bilancio3 -= cifra
                    print(f"Il nuovo bilancio è di {bilancio3} euro")
        else:
            print("Operazione non valida")

# -----===== FINE SOLUZIONE =====-----
print("Stato database:")
print(f"Utente 1: {bilancio1} euro")
print(f"Utente 2: {bilancio2} euro")
print(f"Utente 3: {bilancio3} euro")