diff --git a/mnemo_cards_backend/lib/cron/tasks_seeder.dart b/mnemo_cards_backend/lib/cron/tasks_seeder.dart index 5c28564..0f215f5 100644 --- a/mnemo_cards_backend/lib/cron/tasks_seeder.dart +++ b/mnemo_cards_backend/lib/cron/tasks_seeder.dart @@ -16,13 +16,6 @@ class TasksSeederTask with cron_task.Task { print('Seeding initial user tasks...'); try { - // Check if tasks already exist - final existingTasks = await _db.taskDao.getAllUserTasks(); - if (existingTasks.isNotEmpty) { - print('Tasks already exist, skipping seeding'); - return; - } - final now = DateTime.now(); final weekFromNow = now.add(const Duration(days: 7)); @@ -203,9 +196,11 @@ class TasksSeederTask with cron_task.Task { ]; // Convert UserTaskModel to UserTasksCompanion and insert + // Используем InsertMode.insertOrIgnore для автоматического игнорирования дубликатов через ON CONFLICT for (final taskModel in tasks) { final rewardsJson = taskModel.rewards.map((r) => r.toJson()).toList(); - await _db.taskDao.createUserTask( + + await _db.into(_db.userTasks).insert( UserTasksCompanion.insert( title: taskModel.title, description: taskModel.description, @@ -221,10 +216,11 @@ class TasksSeederTask with cron_task.Task { tags: Value(taskModel.tags), imageUrl: Value(taskModel.imageUrl), ), + mode: InsertMode.insertOrIgnore, // ON CONFLICT DO NOTHING ); } - print('Successfully seeded ${tasks.length} user tasks'); + print('Successfully seeded ${tasks.length} user tasks (duplicates ignored)'); } catch (e) { print('Error seeding tasks: $e'); rethrow;