mnemo_cards/mnemo_cards_backend/lib/cron/discount_campaign_task.dart

30 lines
683 B
Dart
Raw Normal View History

2025-12-13 14:48:00 +00:00
import 'package:mnemo_cards_backend/database/database.dart';
2025-11-16 11:25:27 +00:00
import '../discounts/discounts_manager.dart';
2025-12-13 14:48:00 +00:00
import 'task.dart' as task;
2025-11-16 11:25:27 +00:00
2025-12-13 14:48:00 +00:00
class DiscountCampaignTask with task.Task {
2025-11-16 11:25:27 +00:00
final DiscountsManager _discountsManager;
2025-12-13 14:48:00 +00:00
final AppDatabase _db;
2025-11-16 11:25:27 +00:00
2025-12-13 14:48:00 +00:00
DiscountCampaignTask(this._discountsManager, this._db);
2025-11-16 11:25:27 +00:00
@override
String get name => 'discount_campaign';
@override
Future<void> task() async {
2025-12-13 14:48:00 +00:00
final campaigns = await _db.discountDao.getCampaignsByStatuses([
'created',
'active',
]);
2025-12-20 18:26:15 +00:00
2025-11-16 11:25:27 +00:00
for (final campaign in campaigns) {
2025-12-13 14:48:00 +00:00
await _discountsManager.changeCampaignStatus(campaign);
2025-11-16 11:25:27 +00:00
}
}
@override
int get intervalSeconds => 15 * 60;
}