import
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package service
|
||||
|
||||
import "log/slog"
|
||||
|
||||
// NotificationRepository — интерфейс репозитория уведомлений для NotificationService.
|
||||
type NotificationRepository interface {
|
||||
// методы, которые NotificationService использует из репозитория уведомлений
|
||||
}
|
||||
|
||||
// NotificationUserService — интерфейс сервиса пользователей для NotificationService.
|
||||
type NotificationUserService interface {
|
||||
// методы, которые NotificationService использует из сервиса пользователей
|
||||
}
|
||||
|
||||
// NotificationEventSubscriber — интерфейс для подписки на события.
|
||||
type NotificationEventSubscriber interface {
|
||||
Subscribe(event string, handler func())
|
||||
}
|
||||
|
||||
// NotificationService — интерфейс сервиса уведомлений.
|
||||
// Структура неэкспортируемая — создать объект можно только через NewNotificationService.
|
||||
type NotificationService interface{}
|
||||
|
||||
// notificationService — сервис уведомлений.
|
||||
type notificationService struct {
|
||||
notificationRepo NotificationRepository
|
||||
userService NotificationUserService
|
||||
events NotificationEventSubscriber
|
||||
}
|
||||
|
||||
// NewNotificationService создаёт сервис уведомлений.
|
||||
func NewNotificationService(
|
||||
notificationRepo NotificationRepository,
|
||||
userService NotificationUserService,
|
||||
events NotificationEventSubscriber,
|
||||
) NotificationService {
|
||||
slog.Info("сервис уведомлений создан")
|
||||
return ¬ificationService{
|
||||
notificationRepo: notificationRepo,
|
||||
userService: userService,
|
||||
events: events,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user