namespace CMSMicroservice.Application.Common.Interfaces;
///
/// سرویس ارسال Alert و Notification
/// برای ارسال اعلانهای مختلف از طریق کانالهای مختلف (Email, SMS, Slack, etc.)
///
public interface IAlertService
{
///
/// ارسال Alert برای خطاهای Critical
///
Task SendCriticalAlertAsync(string title, string message, Exception? exception = null, CancellationToken cancellationToken = default);
///
/// ارسال Alert برای Warning
///
Task SendWarningAlertAsync(string title, string message, CancellationToken cancellationToken = default);
///
/// ارسال اعلان موفقیت
///
Task SendSuccessNotificationAsync(string title, string message, CancellationToken cancellationToken = default);
}
///
/// سرویس ارسال Notification به کاربران
/// برای ارسال پیامک، ایمیل و پوش به کاربران سیستم
///
public interface IUserNotificationService
{
///
/// ارسال اعلان دریافت کمیسیون به کاربر
///
Task SendCommissionReceivedNotificationAsync(
long userId,
decimal amount,
int weekNumber,
string? packageName = null,
CancellationToken cancellationToken = default);
///
/// ارسال اعلان فعالسازی عضویت باشگاه
///
Task SendClubActivationNotificationAsync(
long userId,
string? packageName = null,
CancellationToken cancellationToken = default);
///
/// ارسال اعلان خطا در پرداخت
///
Task SendPayoutErrorNotificationAsync(
long userId,
string errorMessage,
string? packageName = null,
CancellationToken cancellationToken = default);
}