Fully implement Kavenegar SMS support
Core changes: - ISmsService: add SendBulkAsync (batches of 200) + GetAccountInfoAsync - KavenegarSmsService: POST requests, sender number config, bulk send via comma-separated receptors, account balance, full error code mapping (HTTP 400-432), enabled-flag check before any send - SmsMarketingService: replaced per-recipient loop with SendBulkAsync - SmsController: new GET /sms/balance endpoint returns Kavenegar credit - SmsDtos: SmsBalanceDto - IntegrationDtos + PlatformIntegrationService: SenderNumber field - appsettings.json + docker-compose: Kavenegar__SenderNumber = 90005671 Dashboard: - sms-screen: char counter, SMS parts indicator (Persian 70/67 chars, Latin 160/153), account balance card, sender line display, result banner Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -378,7 +378,16 @@
|
||||
"usage": "Usage this month",
|
||||
"unlimited": "Unlimited",
|
||||
"sent": "Sent",
|
||||
"failed": "Failed"
|
||||
"failed": "Failed",
|
||||
"charCount": "{count} chars",
|
||||
"smsPartsHint": "{parts} SMS",
|
||||
"balance": "Account credit",
|
||||
"balanceAmount": "{amount} Rials",
|
||||
"balanceNotConfigured": "Kavenegar not configured",
|
||||
"sender": "Sender line",
|
||||
"recipientsCount": "{count} recipients",
|
||||
"sendConfirm": "Send to {count} people?",
|
||||
"sending": "Sending..."
|
||||
},
|
||||
"reports": {
|
||||
"title": "Reports & analytics",
|
||||
|
||||
@@ -378,7 +378,16 @@
|
||||
"usage": "مصرف این ماه",
|
||||
"unlimited": "نامحدود",
|
||||
"sent": "ارسال شد",
|
||||
"failed": "ناموفق"
|
||||
"failed": "ناموفق",
|
||||
"charCount": "{count} حرف",
|
||||
"smsPartsHint": "{parts} پیامک",
|
||||
"balance": "اعتبار حساب",
|
||||
"balanceAmount": "{amount} ریال",
|
||||
"balanceNotConfigured": "Kavenegar پیکربندی نشده",
|
||||
"sender": "خط فرستنده",
|
||||
"recipientsCount": "{count} مخاطب",
|
||||
"sendConfirm": "ارسال به {count} نفر؟",
|
||||
"sending": "در حال ارسال..."
|
||||
},
|
||||
"reports": {
|
||||
"title": "گزارشها و تحلیل",
|
||||
|
||||
Reference in New Issue
Block a user