spark-server/internal/module/admin/logic/service.go

31 lines
711 B
Go

// Package logic is the admin application layer (popadmin ops over V3 data).
package logic
import (
"errors"
adminmodel "spark-server/internal/module/admin/model"
grouplogic "spark-server/internal/module/group/logic"
)
var ErrNotReady = errors.New("admin: repository not ready")
// Service orchestrates admin use-cases. SQL lives in model.Repo.
type Service struct {
repo *adminmodel.Repo
groups *grouplogic.Service
ids IDGen
}
type IDGen interface {
NextID() (int64, error)
}
func NewService(repo *adminmodel.Repo, groups *grouplogic.Service, ids IDGen) *Service {
return &Service{repo: repo, groups: groups, ids: ids}
}
func (s *Service) ready() bool {
return s != nil && s.repo != nil
}