27 lines
1.0 KiB
Go
27 lines
1.0 KiB
Go
package repository
|
|
|
|
import "log/slog"
|
|
|
|
// NotificationDB — интерфейс базы данных, который нужен NotificationRepo.
|
|
// Включает BulkInsert — для массовой вставки уведомлений.
|
|
type NotificationDB interface {
|
|
Query(query string) error
|
|
Exec(query string) error
|
|
BulkInsert(query string, args ...any) error
|
|
}
|
|
|
|
// NotificationRepo — интерфейс репозитория уведомлений.
|
|
// Структура неэкспортируемая — создать объект можно только через NewNotificationRepo.
|
|
type NotificationRepo interface{}
|
|
|
|
// notificationRepo — репозиторий уведомлений.
|
|
type notificationRepo struct {
|
|
db NotificationDB
|
|
}
|
|
|
|
// NewNotificationRepo создаёт репозиторий уведомлений.
|
|
func NewNotificationRepo(db NotificationDB) NotificationRepo {
|
|
slog.Info("репозиторий уведомлений создан")
|
|
return ¬ificationRepo{db: db}
|
|
}
|