package api

import (
	"github.com/go-chi/chi/v5"
	"github.com/tech/sendico/notification/interface/api/localizer"
	"github.com/tech/sendico/pkg/db"
	"github.com/tech/sendico/pkg/domainprovider"
	"github.com/tech/sendico/pkg/messaging"
	"github.com/tech/sendico/pkg/mlogger"
	"github.com/tech/sendico/pkg/mservice"
)

type API interface {
	Config() *Config
	DBFactory() db.Factory
	Logger() mlogger.Logger
	Register() messaging.Register
	Localizer() localizer.Localizer
	DomainProvider() domainprovider.DomainProvider
	Router() *chi.Mux
}

type MicroServiceFactoryT = func(API) (mservice.MicroService, error)
