package scheduler import ( "context" "log/slog" "github.com/costap/quarkshologridledger/tongo-core/internal/domain/entity" "github.com/costap/quarkshologridledger/tongo-core/internal/domain/port" ) // Scheduler manages the lifecycle of all active matches. type Scheduler struct { matchmaker port.MatchmakerService matches []*entity.Match logger *slog.Logger } // New creates a new Scheduler instance. func New(matchmaker port.MatchmakerService, logger *slog.Logger) *Scheduler { return &Scheduler{ matchmaker: matchmaker, matches: make([]*entity.Match, 0), logger: logger, } } // Tick advances the scheduler by one cycle, creating or retiring matches as needed. func (s *Scheduler) Tick(ctx context.Context) error { s.logger.Debug("Scheduler tick") return nil } // ActiveMatches returns all currently active matches. func (s *Scheduler) ActiveMatches() []*entity.Match { return s.matches } // SeedMatches creates initial matches up to the target count. func (s *Scheduler) SeedMatches(ctx context.Context, count int) error { s.logger.Info("Seeding initial matches", "count", count) return nil }