package utils

import (
    "encoding/json"
    "os"
    "fmt"
)

type Config struct {
    IRCServer     string   `json:"irc_server"`
    IRCPort       int      `json:"irc_port"`
    SSL           bool     `json:"ssl"`
    Nickname      string   `json:"nickname"`
    Channels      []string `json:"channels"`
    GeoIP_City    string   `json:"geoip_city"`
    GeoIP_ASN     string   `json:"geoip_asn"`
    Callback      bool     `json:"callback"`
    Debug         bool     `json:"debug"`
}

func LoadConfig(file string) (Config, error) {
    var config Config

    configFile, err := os.Open(file)
    if err != nil {
        return config, fmt.Errorf("error opening config file: %v", err)
    }
    defer configFile.Close()

    err = json.NewDecoder(configFile).Decode(&config)
    if err != nil {
        return config, fmt.Errorf("error decoding config file: %v", err)
    }

    return config, nil
}