namespace PkmnLib.Dynamic.Events;

/// <summary>
/// Represents an event that occurs when a dialog is displayed.
/// </summary>
public class DialogEvent : IEventData
{
    /// <inheritdoc />
    public EventBatchId BatchId { get; init; } = new();

    /// <inheritdoc cref="DialogEvent"/>
    public DialogEvent(string message, Dictionary<string, object>? parameters = null)
    {
        Message = message;
        Parameters = parameters;
    }

    /// <summary>
    /// The message to be displayed in the dialog. This is generally a key that needs to be localized.
    /// </summary>
    public string Message { get; set; }

    /// <summary>
    /// Optional parameters that can be used to format the message in a localized string.
    /// </summary>
    public Dictionary<string, object>? Parameters { get; set; }
}