userSession = $userSession; $this->deckService = $deckService; $this->logger = $logger; } public function moveOverdueCards() { $user = $this->userSession->getUser(); if ($user === null) { return; } // Hole alle Decks für den User $decks = $this->deckService->getDecksByUser($user->getUID()); foreach ($decks as $deck) { // Hole die Quell- und Zielstapel $sourceStack = $deck->getStackById('sourceStackId'); // Ersetze durch die Konfiguration $targetStack = $deck->getStackById('targetStackId'); // Ersetze durch die Konfiguration // Überprüfe alle Karten im Quellstapel auf Überfälligkeit foreach ($sourceStack->getCards() as $card) { if ($this->isCardOverdue($card)) { $this->moveCardToTargetStack($card, $targetStack); } } } } private function isCardOverdue($card) { $dueDate = $card->getDueDate(); return $dueDate && $dueDate < time(); } private function moveCardToTargetStack($card, $targetStack) { $this->deckService->moveCardToStack($card, $targetStack); $this->logger->info("Card moved to target stack."); } }