addLike method

Future<UserAccount> addLike({
  1. required String email,
  2. required String packageName,
})

Implementation

Future<UserAccount> addLike({
  required String email,
  required String packageName,
}) async {
  final users = await _readUsers();
  final index = users.indexWhere((u) => u.email == email);
  if (index < 0) throw StateError('user not found');
  final user = users[index];
  final likes = [...user.likedPackages];
  if (!likes.contains(packageName)) {
    likes.add(packageName);
  }
  final updated =
      user.copyWith(likedPackages: likes, updatedAt: DateTime.now());
  users[index] = updated;
  await _writeUsers(users);
  await addActivity(
    email: email,
    action: 'like_add',
    message: 'Liked package $packageName',
  );
  return updated;
}