Files
graceful-shutdown/internal/service/notification.go
T
2026-04-13 08:10:14 +03:00

43 lines
1.6 KiB
Go

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 — интерфейс сервиса уведомлений.
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 &notificationService{
notificationRepo: notificationRepo,
userService: userService,
events: events,
}
}