package repository import "log/slog" // UserDB — интерфейс базы данных, который нужен UserRepo. // Включает QueryRow — для поиска одного пользователя по ID/email. type UserDB interface { Query(query string) error QueryRow(query string) error Exec(query string) error } // UserRepo — интерфейс репозитория пользователей. // Структура неэкспортируемая — создать объект можно только через NewUserRepo. type UserRepo interface{} // userRepo — репозиторий пользователей. type userRepo struct { db UserDB } // NewUserRepo создаёт репозиторий пользователей. func NewUserRepo(db UserDB) UserRepo { slog.Info("репозиторий пользователей создан") return &userRepo{db: db} }