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

part of '../../task_lifecycle.dart';

/// Result of applying activity-derived task statistics.
class TaskActivityApplicationResult {
  /// Creates a `TaskActivityApplicationResult` 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.
  TaskActivityApplicationResult({
    required this.task,
    List<String> appliedActivityIds = const <String>[],
  }) : appliedActivityIds = List<String>.unmodifiable(appliedActivityIds);

  /// Task after all newly applied activity effects.
  final Task task;

  /// Activity ids that changed statistics in this application pass.
  final List<String> appliedActivityIds;
}
