import 'package:immich_mobile/providers/activity_service.provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'activity_statistics.provider.g.dart';

/// Maintains the current number of comments by <shared-album, asset>
@riverpod
class ActivityStatistics extends _$ActivityStatistics {
  @override
  int build(String albumId, [String? assetId]) {
    ref
        .watch(activityServiceProvider)
        .getStatistics(albumId, assetId: assetId)
        .then((stats) => state = stats.comments);
    return 0;
  }

  void addActivity() => state = state + 1;

  void removeActivity() => state = state - 1;
}

/// Mock class for testing
abstract class ActivityStatisticsInternal extends _$ActivityStatistics {}