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

part of '../../application_management.dart';

/// Result for owner settings updates.
class OwnerSettingsUpdateResult {
  /// Creates a `OwnerSettingsUpdateResult` 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.
  OwnerSettingsUpdateResult({
    required this.settings,
    Iterable<OwnerSettingsWarningCode> warnings =
        const <OwnerSettingsWarningCode>[],
  }) : warnings = List<OwnerSettingsWarningCode>.unmodifiable(warnings);

  /// Persisted owner settings.
  final OwnerSettings settings;

  /// Typed warnings for changes that may need migration/UI confirmation.
  final List<OwnerSettingsWarningCode> warnings;
}
