51 lines
1.4 KiB
Go

package admin
import (
"bindbox-game/internal/pkg/logger"
"bindbox-game/internal/repository/mysql"
"bindbox-game/internal/repository/mysql/dao"
activitysvc "bindbox-game/internal/service/activity"
adminsvc "bindbox-game/internal/service/admin"
bannersvc "bindbox-game/internal/service/banner"
channelsvc "bindbox-game/internal/service/channel"
productsvc "bindbox-game/internal/service/product"
syscfgsvc "bindbox-game/internal/service/sysconfig"
titlesvc "bindbox-game/internal/service/title"
usersvc "bindbox-game/internal/service/user"
"github.com/redis/go-redis/v9"
)
type handler struct {
logger logger.CustomLogger
writeDB *dao.Query
readDB *dao.Query
repo mysql.Repo
svc adminsvc.Service
activity activitysvc.Service
product productsvc.Service
user usersvc.Service
banner bannersvc.Service
channel channelsvc.Service
title titlesvc.Service
syscfg syscfgsvc.Service
}
func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler {
userSvc := usersvc.New(logger, db)
return &handler{
logger: logger,
writeDB: dao.Use(db.GetDbW()),
readDB: dao.Use(db.GetDbR()),
repo: db,
svc: adminsvc.New(logger, db),
activity: activitysvc.New(logger, db, userSvc, rdb),
product: productsvc.New(logger, db),
user: userSvc,
banner: bannersvc.New(logger, db),
channel: channelsvc.New(logger, db),
title: titlesvc.New(logger, db),
syscfg: syscfgsvc.New(logger, db),
}
}