// package types -- содержит интерфейсы проекта
package types

import (
	"context"
	"sync"
)

// IServCtx -- контекст сервиса
type IServCtx interface {
	// Ctx -- возвращает контекст приложения
	Ctx() context.Context
	// CancelApp -- отменяет контекст приложения
	CancelApp()
	// Wg -- возвращает ожидатель группы потоков
	Wg() *sync.WaitGroup
}

// IService -- объект сервиса
type IService interface {
	IServCtx
	// Run -- запускает сервис в работу
	Run()
	// Store -- хранилище
	Store() IStore
	// ServHttp -- HTTP-сервер
	ServHttp() IServHttp
}
