// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

part of '../../project_statistics.dart';

/// Result of applying project-statistic effects from activities.
class ProjectStatisticsApplicationResult {
  /// Creates a `ProjectStatisticsApplicationResult` instance with the values required by its invariants.
  /// Callers should pass already-normalized scheduler data because validation and defaulting belong at the model or service boundary, not in arbitrary UI code.
  ProjectStatisticsApplicationResult({
    required this.statistics,
    List<String> appliedActivityIds = const <String>[],
  }) : appliedActivityIds = List<String>.unmodifiable(appliedActivityIds);

  /// Aggregate after newly applied activity effects.
  final ProjectStatistics statistics;

  /// Completion activity ids that changed the aggregate.
  final List<String> appliedActivityIds;
}
