namespace CMSMicroservice.Domain.Common;

/// <summary>
/// قالب‌های پیامک - همه پیام‌های SMS در یک جا
/// </summary>
public static class SmsTemplates
{
    /// <summary>
    /// پیام دریافت اعتبار دایا
    /// </summary>
    public static string DayaLoanReceived(string userName, string? packageName = null) =>
        packageName != null
            ? $"{userName} عزیز، تامین اعتبار {packageName} شما انجام شد. شما می‌توانید با مراجعه به سامانه کارابازار فرایند فعال‌سازی خود را ادامه دهید. با تشکر از حسن انتخاب شما"
            : $"{userName} عزیز، تامین اعتبار شما انجام شد. شما می‌توانید با مراجعه به سامانه کارابازار فرایند فعال‌سازی خود را ادامه دهید. با تشکر از حسن انتخاب شما";

    /// <summary>
    /// پیام فعال‌سازی باشگاه مشتریان
    /// </summary>
    public static string ClubActivated(string userName, string? packageName = null) =>
        packageName != null
            ? $"{userName} گرامی، عضویت شما در باشگاه مشتریان کارابازار با {packageName} فعال شد. با تشکر از حسن انتخاب شما"
            : $"{userName} گرامی، عضویت شما در باشگاه مشتریان کارابازار با موفقیت فعال شد. با تشکر از حسن انتخاب شما";

    /// <summary>
    /// پیام خرید پکیج
    /// </summary>
    public static string PackagePurchased(string userName, string packageName) =>
        $"{userName} گرامی، خرید {packageName} با موفقیت انجام شد. با تشکر از حسن انتخاب شما";

    /// <summary>
    /// پیام واریز کمیسیون
    /// </summary>
    public static string CommissionDeposited(string userName, long amount, string? packageName = null) =>
        packageName != null
            ? $"{userName} گرامی، مبلغ {amount:N0} ریال بابت کمیسیون {packageName} به کیف پول شما واریز شد."
            : $"{userName} گرامی، مبلغ {amount:N0} ریال بابت کمیسیون به کیف پول شما واریز شد.";

    /// <summary>
    /// پیام برداشت موفق
    /// </summary>
    public static string WithdrawalSuccess(string userName, long amount) =>
        $"{userName} گرامی، درخواست برداشت شما به مبلغ {amount:N0} ریال با موفقیت ثبت شد.";

    /// <summary>
    /// پیام ورود به شبکه
    /// </summary>
    public static string NetworkJoined(string userName, string referrerName) =>
        $"{userName} گرامی، شما با موفقیت در شبکه {referrerName} ثبت شدید. با تشکر از حسن انتخاب شما";

    /// <summary>
    /// پیام زیرمجموعه جدید
    /// </summary>
    public static string NewDownline(string userName, string downlineName) =>
        $"{userName} گرامی، {downlineName} به عنوان زیرمجموعه شما ثبت شد.";

    /// <summary>
    /// پیام OTP
    /// </summary>
    public static string OtpCode(string code) =>
        $"کد تایید شما: {code}\nکارابازار";

    /// <summary>
    /// پیام خوش‌آمدگویی
    /// </summary>
    public static string Welcome(string userName) =>
        $"{userName} گرامی، به کارابازار خوش آمدید.";

    #region Helper

    /// <summary>
    /// دریافت نام کاربر یا مقدار پیش‌فرض
    /// </summary>
    public static string GetUserName(string? fullName) =>
        !string.IsNullOrWhiteSpace(fullName) ? fullName : "کاربر";

    #endregion
}
