package utils

import (
	"fmt"
	"log"
	"os"

	"github.com/joho/godotenv"
)

var (
	HOST      string
	PORT      string
	HTTPS     string
	PROXY     bool
	URL       string
	REDIS_URI string
	ESTATS    string
)

func Init_env_file() {
	err := godotenv.Load()
	if err != nil {
		fmt.Println("INFO: ", "Error loading .env file using environment variables")
	}
}

func Init_env_vars() {
	fmt.Println("-- Initializing environment variables... --")

	UHOST, err := os.LookupEnv("HOST")
	if !err {
		log.Fatal("HOST enviroment variable not found, please set it!")
	}
	HOST = UHOST
	fmt.Println("HOST: ", HOST)

	UHTTPS, _ := os.LookupEnv("HTTPS")
	if UHTTPS != "true" {
		HTTPS = "http"
	} else {
		HTTPS = "https"
	}
	fmt.Println("Proto: ", HTTPS)

	UPROXY, _ := os.LookupEnv("PROXY")
	if UPROXY != "true" {
		PROXY = false
	} else {
		PROXY = true
	}
	fmt.Println("Own reverse proxy: ", PROXY)

	UPORT, err := os.LookupEnv("PORT")
	if !err {
		PORT = "3000"
	} else {
		PORT = UPORT
	}
	fmt.Println("Port: ", PORT)

	UREDIS_URI, err := os.LookupEnv("REDIS_URI")
	if !err {
		REDIS_URI = "redis:6379"
	} else {
		REDIS_URI = UREDIS_URI
	}
	fmt.Println("Redis URI: ", REDIS_URI)

	UESTATS, _ := os.LookupEnv("ENABLE_STATS")
	if UESTATS != "false" {
		ESTATS = "true"
	} else {
		ESTATS = "false"
	}
	fmt.Println("Stats enabled: ", ESTATS)

	create_string()

}

func create_string() {
	if !PROXY {
		URL = HTTPS + "://" + HOST + ":" + PORT + "/"
	} else {
		URL = HTTPS + "://" + HOST + "/"
	}

	fmt.Println("URL: ", URL)
	fmt.Println("-- Environment variables initialized! / Starting Webserver --")
}