/// Represents a class that contains data present in all interactions to evaluate against at rest-interaction creation.
/// </summary>
public readonly struct InteractionProperties
{
/// <summary>
/// The type of this interaction.
/// </summary>
public InteractionType Type { get; }
/// <summary>
/// Gets the type of application command this interaction represents.
/// </summary>
/// <remarks>
/// This will be <see langword="null"/> if the <see cref="Type"/> is not <see cref="InteractionType.ApplicationCommand"/>.
/// </remarks>
public ApplicationCommandType? CommandType { get; }
/// <summary>
/// Gets the name of the interaction.
/// </summary>
/// <remarks>
/// This will be <see cref="string.Empty"/> if the <see cref="Type"/> is not <see cref="InteractionType.ApplicationCommand"/>.
/// </remarks>
public string Name { get; } = string.Empty;
/// <summary>
/// Gets the custom ID of the interaction.
/// </summary>
/// <remarks>
/// This will be <see cref="string.Empty"/> if the <see cref="Type"/> is not <see cref="InteractionType.MessageComponent"/> or <see cref="InteractionType.ModalSubmit"/>.
/// </remarks>
public string CustomId { get; } = string.Empty;
/// <summary>
/// Gets the guild ID of the interaction.
/// </summary>
/// <remarks>
/// This will be <see langword="null"/> if this interaction was not executed in a guild.
/// </remarks>
public ulong? GuildId { get; }
/// <summary>
/// Gets the channel ID of the interaction.
/// </summary>
/// <remarks>
/// This will be <see langword="null"/> if this interaction is <see cref="InteractionType.Ping"/>.
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.