namespace ColaFlow.Modules.Mcp.Application.DTOs.Notifications;

/// <summary>
/// Base class for all PendingChange notifications
/// </summary>
public abstract record PendingChangeNotification
{
    /// <summary>
    /// Type of notification (PendingChangeCreated, PendingChangeApproved, etc.)
    /// </summary>
    public required string NotificationType { get; init; }

    /// <summary>
    /// The ID of the pending change
    /// </summary>
    public required Guid PendingChangeId { get; init; }

    /// <summary>
    /// The tool that created the pending change
    /// </summary>
    public required string ToolName { get; init; }

    /// <summary>
    /// When this notification was generated (UTC)
    /// </summary>
    public DateTime Timestamp { get; init; } = DateTime.UtcNow;

    /// <summary>
    /// Tenant ID for multi-tenancy support
    /// </summary>
    public required Guid TenantId { get; init; }
}
