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

part of '../../notification_adapter.dart';

/// Feedback event emitted by a notification adapter.
final class NotificationFeedback {
  /// Creates a notification feedback event.
  NotificationFeedback({
    required String id,
    required this.type,
    this.actionId,
    this.payloadJson = '{}',
  }) : id = _requiredTrimmed(id, 'id');

  /// Stable notification id associated with the feedback.
  final String id;

  /// Type of user feedback.
  final NotificationFeedbackType type;

  /// Optional action id for [NotificationFeedbackType.action].
  final String? actionId;

  /// Adapter-neutral JSON payload string.
  final String payloadJson;
}
