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 products, UserModel user) { final productString = (products.toList() ..sort((p, n) => (p.id ?? -1).compareTo(n.id ?? -1))) .map((product) => '${product.type.name}_${product.id}') .join(','); final userId = user.id.toString(); final hash = crypto.sha256 .convert( '${productString}_${userId}_$_salt'.codeUnits, ) .toString(); return hash; } }