package main

import (
	"os"
	"time"

	_ "github.com/joho/godotenv/autoload"
	"jonasled.dev/jonasled/ems-esp-logger/database"
	"jonasled.dev/jonasled/ems-esp-logger/log"
	"jonasled.dev/jonasled/ems-esp-logger/messageworker"
	"jonasled.dev/jonasled/ems-esp-logger/mqttclient"
	"jonasled.dev/jonasled/ems-esp-logger/mqttserver"
	"jonasled.dev/jonasled/ems-esp-logger/queue"
)

func main() {
	log.Init()

	queue.Init()

	if os.Getenv("OUTPUT_DATABSE") != "" {
		database.Init()
		database.CreateInstance()
	}

	if os.Getenv("MQTT_SERVER_ENABLED") == "true" {
		log.Log.Info("Starting embedded MQTT server")
		mqttserver.Start()
	}
	mqttclient.Init()
	go messageworker.Run()
	for {
		time.Sleep(time.Second) // reduce CPU usage by adding a short sleep here instead of a empty for loop
	}

}