import 'package:isar/isar.dart'; import 'package:mnemo_cards_backend/cron/task.dart'; import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart'; import 'package:mnemo_cards_backend/tests/test_manager.dart'; import '../main.dart'; class TestGeneratorTask with Task { final TestManager _testManager; TestGeneratorTask(this._testManager); @override String get name => 'test_gen'; @override Future task() async { print('Refreshing custom test data...'); try { await _testManager.refreshCustomCreationTestsData(); } catch (e) { print(e); } print('Refreshed custom test data'); final models = await isar.txn(() => isar.cardPackModels.where().findAll()); print('Will generate tests for ${models.length} packs'); int ok = 0; for (final model in models) { try { await _testManager.updateGeneratedTests(model); ok++; } catch (e) { print(e); } } print('Generated tests for $ok packs'); print('Deleting old test stats'); final count = await isar.writeTxn(() { return isar.testStatisticsModels.filter().testIsNull().deleteAll(); }); print('deleted $count old test stats'); } @override int get intervalSeconds => 60 * 30; }