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;
|
|
|
|
|
}
|