func NewApp(cfg Config, log logger.Logger, version, gitHash string) *App {
	return &App{
		config:  cfg,
		version: version,
		gitHash: gitHash,
		log: log,
		shutdownSignal: make(chan struct{}),
	}
}
NewApp returns a new instance of App
package app
import (
	"context"
	"time"
	"github.com/ShoshinNikita/budget-manager/internal/db/pg"
	"github.com/ShoshinNikita/budget-manager/internal/db/sqlite"
	"github.com/ShoshinNikita/budget-manager/internal/logger"
	"github.com/ShoshinNikita/budget-manager/internal/pkg/errors"
	"github.com/ShoshinNikita/budget-manager/internal/web"
)
type App struct {
	config  Config
	version string
	gitHash string
	db     Database
	log    logger.Logger
	server *web.Server
	shutdownSignal chan struct{}
}
type Database interface {
	InitMonth(ctx context.Context, year int, month time.Month) error
	Shutdown() error
	web.Database
}