package app

import (
	"context"

	"github.com/sirupsen/logrus"

	"source.hodakov.me/hdkv/github-release/lib/settings"
)

type App struct {
	ctx      context.Context
	logger   *logrus.Logger
	settings *settings.Settings
}

func (a *App) Context() context.Context {
	return a.ctx
}

func (a *App) Logger() *logrus.Logger {
	return a.logger
}

func (a *App) Settings() *settings.Settings {
	return a.settings
}

func Init(ctx context.Context) *App {
	app := new(App)

	app.settings = new(settings.Settings)

	app.logger = logrus.StandardLogger()
	app.logger.SetFormatter(&logrus.TextFormatter{
		FullTimestamp: true,
	})

	app.ctx = ctx

	return app
}