from tkinter import * 
from gpt import ask

# Ein Fenster erstellen
fenster = Tk()

fenster.geometry("900x400")
# Den Fenstertitle erstellen
fenster.title("AI-Energy: Heizungsoptimierung")

# Heizungsart
label_heiz = Label(fenster,text="heat source") 
clicked_heiz = StringVar()
heizungstpyen = [
    "district heating",
    "oil",
    "gas",
    "elektrical",
    "heat pump"
]
clicked_heiz.set(heizungstpyen[0])
drop_heizung = OptionMenu(fenster,clicked_heiz, *heizungstpyen)
label_heiz.grid(row=0,column=0,pady=20)
drop_heizung.grid(row=0,column=1)

# Effizienz
label_eff = Label(fenster,text="efficiency class") 
clicked_eff=StringVar()
effizienzklassen = [
    "A",
    "B",
    "C",
    "D",
    "E",
    "F",
    "G"
]
clicked_eff.set(effizienzklassen[0])
drop_effizienz = OptionMenu(fenster,clicked_eff, *effizienzklassen)
label_eff.grid(row=1,column=0,pady=20)
drop_effizienz.grid(row=1,column=1)

# Raumgröße
label_raum = Label(fenster, text="room size")
eingabe_raum = Entry(fenster, bd=5, width=40)
label_raum.grid(row=2,column=0,pady=20)
eingabe_raum.grid(row=2,column=1)

# temp ist
tempi = "22"
label_tempi1 = Label(fenster, text="current temperature")
label_tempi2 = Label(fenster, text=tempi)
label_tempi1.grid(row=3,column=0,pady=20)
label_tempi2.grid(row=3,column=1)

# temp soll
label_temps = Label(fenster, text="desired temperature")
eingabe_temps = Entry(fenster, bd=5, width=40)
label_temps.grid(row=4,column=0,pady=20)
eingabe_temps.grid(row=4,column=1)



# ausgabe

label_ausgabe = Label(fenster,text="")
label_frage = Label(fenster, text="Frage",width=40)

if False:
    label_frage.grid(row=5,column=0,pady=20)
    label_ausgabe.grid(row=5,column=1)

def changeAusgabe(text):
    label_ausgabe.config(text=text)



# In der Ereignisschleife auf Eingabe des Benutzers warten.
changeAusgabe("Hallo")


antwort = Label(fenster,text="answer")

# Button
def button_action():
    ausgabe = ["Ich habe einen Raum der mit einer "+clicked_heiz.get()+"\n"+" Heizung."+
              "Mein Raum ist "+eingabe_raum.get()+" m^2 groß."+"\n"+
              "Meine Heizung hat die Effizienzklasse "+clicked_eff.get()+"\n"+
              "Wenn ich die Temperatur von "+ str(label_tempi2.cget("text"))+"°C auf"+"\n"+ eingabe_temps.get()+
              "°C ändere, spare ich wie viel CO2 spare ich pro Tag ein?"+"\n"+
              "Arbeite mit diesen Informationen,"+"\n" +"mehr Informationen habe ich nicht."+"\n"+
              " Antwort in maximal 20 Zeichen. Schätze das Ergebnis,"+"\n"+
              " wenn dir Daten fehlen. Ich brauche einen Zahlenwert.Antworte in englisch"]
    ausgabe_en =["I have a room with the size of "+eingabe_raum.get()+" with a heating type of "+
                 clicked_heiz.get()+". The efficiency rating is "+clicked_eff.get()+". How much CO2, money in € and energy"+
                 " could i save when i decrease my heating from "+ str(label_tempi2.cget("text"))+
                 "°C to"+"\n"+ eingabe_temps.get()+"°C? Please use this information i dont have more. "+
                 "Should u not know please guess. Answer in maximum 20 characters. I need a number"]
          
    changeAusgabe(ausgabe_en)
    text= ask(ausgabe_en)
    antwort.config(text=text)
    

but = Button(fenster, text="calculate",command=button_action)
but.grid(row=6)

antwort.grid(row=0,column=2)

    

fenster.mainloop()