mnemo_cards/mnemo_cards_backend/lib/api/ads/ads_manager.dart

23 lines
726 B
Dart
Raw Normal View History

2025-11-16 11:25:27 +00:00
import 'package:injectable/injectable.dart';
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
import 'package:crypto/crypto.dart' as crypto;
@lazySingleton
class AdsManager {
final _salt = 'elmhqun0d58iqm265bmqlg4oymqujrub';
AdsManager();
String getAdsKey(List<MnemoCardsProductModel> products, UserModel user) {
2025-12-20 18:26:15 +00:00
final productString =
(products.toList()..sort((p, n) => (p.id ?? '').compareTo(n.id ?? '')))
.map((product) => '${product.type.name}_${product.id}')
.join(',');
2025-11-16 11:25:27 +00:00
final userId = user.id.toString();
final hash = crypto.sha256
2025-12-20 18:26:15 +00:00
.convert('${productString}_${userId}_$_salt'.codeUnits)
2025-11-16 11:25:27 +00:00
.toString();
return hash;
}
}