from flask import Flask
from flask import jsonify
import mysql.connector
from mysql.connector import Error
from apscheduler.schedulers.background import BackgroundScheduler
from dotenv import load_dotenv
import os
from mol_api_handler import check
load_dotenv()


from datetime import datetime
sched = BackgroundScheduler(daemon=True)
sched.add_job(check, trigger='cron', hour='7', minute='30')
# Run one immediate job on startup without blocking app import
sched.add_job(check, trigger='date', run_date=datetime.now())
sched.start()

def create_app():
  app = Flask(__name__)
  load_dotenv()
  app.config['PORT'] = os.environ['PORT']
  app.config['HOST'] = os.environ['HOST']
  app.config['FLASK_ENV'] = os.environ['FLASK_ENV']
  @app.route('/', methods=['GET', 'POST'])
  def welcome():

      connection = mysql.connector.connect(host=os.environ.get('DB_HOST'),
      user=os.environ.get('DB_USER'),
      passwd=os.environ.get('DB_PASSWORD'),
      db=os.environ.get('DB_NAME'))
      if connection.is_connected():
          cursor = connection.cursor()
          cursor.execute("SELECT * FROM uzemanyag ORDER BY id DESC LIMIT 1")
          res = cursor.fetchall()
          evo100 = "?"
          evo95 = "?"
          evod = "?"
          evo = "?"
          if len(res) > 0:
              evo100 = res[0][2]
              evo95 = res[0][3]
              evod= res[0][4]
              evodp = res[0][5]
          else:
              print("No results found.")
          cursor.close()
          connection.close()


          response = jsonify(EVO_100_Benzin_Plus = evo100 , EVO_95_Benzin = evo95, EVO_Diesel = evod, EVO_Diesel_Plus = evodp)

          response.headers.add("Access-Control-Allow-Origin", "*")

          return response
  return app

if __name__ == '__main__':
    app = create_app()
    app.run()
