package ctrl
import (
"go.uber.org/zap"
"github.com/bangumi/server/dal"
"github.com/bangumi/server/internal/collections"
"github.com/bangumi/server/internal/episode"
"github.com/bangumi/server/internal/pkg/cache"
"github.com/bangumi/server/internal/pkg/dam"
"github.com/bangumi/server/internal/subject"
"github.com/bangumi/server/internal/timeline"
"github.com/bangumi/server/internal/user"
)
func New(
episode episode.Repo,
cache cache.RedisCache,
subject subject.Repo,
subjectCached subject.CachedRepo,
collection collections.Repo,
timeline timeline.Service,
user user.Repo,
tx dal.Transaction,
dam dam.Dam,
log *zap.Logger,
) Ctrl {
return Ctrl{
log: log.Named("controller"),
cache: cache,
tx: tx,
dam: dam,
subjectCached: subjectCached,
user: user,
episode: episode,
subject: subject,
collection: collection,
timeline: timeline,
}
}
type Ctrl struct {
log *zap.Logger
cache cache.RedisCache
tx dal.Transaction
dam dam.Dam
subjectCached subject.CachedRepo
user user.Repo
episode episode.Repo
subject subject.Repo
collection collections.Repo
timeline timeline.Service
}