package config

import "github.com/imdario/mergo"

import (
	"io"
	"os"
)

var (
	// TimeFormat default time format for any kind of datetime parsing
	TimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT"
)

type (
	Logger struct {
		Out    io.Writer
		Prefix string
		Flag   int
	}
)

func DefaultLogger() Logger {
	return Logger{Out: os.Stdout, Prefix: "", Flag: 0}
}

// Merge merges the default with the given config and returns the result
func (c Logger) Merge(cfg []Logger) (config Logger) {

	if len(cfg) > 0 {
		config = cfg[0]
		mergo.Merge(&config, c)
	} else {
		_default := c
		config = _default
	}

	return
}

// MergeSingle merges the default with the given config and returns the result
func (c Logger) MergeSingle(cfg Logger) (config Logger) {

	config = cfg
	mergo.Merge(&config, c)

	return
}