103 lines
4.5 KiB
Markdown
103 lines
4.5 KiB
Markdown
# جریان کاربری — تسک ۱۴: پنل پیامکی
|
|
|
|
## جریان شارژ کیف پول پیامک
|
|
|
|
```
|
|
کاربر وارد صفحه تنظیمات → تب «پیامک» میشود
|
|
│
|
|
▼
|
|
GET /api/v1/sms/wallet/balance
|
|
→ موجودی: ۱۵۰,۰۰۰ ریال (≈ ۶۰۰ پیامک)
|
|
│
|
|
▼
|
|
کاربر روی «شارژ کیف پول» کلیک میکند
|
|
فرم: مبلغ شارژ + انتخاب gateway
|
|
│
|
|
▼
|
|
POST /api/v1/sms/wallet/charge { gateway: 'mellat', amount_rials: 500000 }
|
|
│
|
|
▼
|
|
PaymentController → ایجاد Payment با type='sms_wallet'
|
|
│
|
|
▼
|
|
redirect به gateway بانک
|
|
│
|
|
▼
|
|
callback → SmsWalletService::charge()
|
|
→ balance_rials += 500000
|
|
→ ثبت credit transaction
|
|
│
|
|
▼
|
|
redirect به /admin/sms-settings?charged=1
|
|
```
|
|
|
|
## جریان تنظیمات یادآوری خودکار
|
|
|
|
```
|
|
GET /api/v1/sms/settings → فرم پر میشود
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────┐
|
|
│ تنظیمات پیامک │
|
|
├─────────────────────────────────────────────┤
|
|
│ یادآوری نوبت │
|
|
│ [✅] فعال │
|
|
│ چند ساعت قبل: [3 ساعت ▼] │
|
|
├─────────────────────────────────────────────┤
|
|
│ پیامک بعد از ویزیت │
|
|
│ [☐] فعال │
|
|
│ متن پیامک: [______________________________]│
|
|
└─────────────────────────────────────────────┘
|
|
│ [ذخیره تنظیمات] │
|
|
│
|
|
▼
|
|
PATCH /api/v1/sms/settings
|
|
{ reminder_enabled: true, reminder_hours_before: 3,
|
|
post_visit_enabled: false, post_visit_text: null }
|
|
```
|
|
|
|
## جریان کسر خودکار هنگام ارسال یادآوری
|
|
|
|
```
|
|
Scheduler/Cronjob اجرا میشود (هر ساعت)
|
|
│
|
|
▼
|
|
نوبتهایی که در X ساعت آینده هستند پیدا میشوند
|
|
│
|
|
▼
|
|
برای هر نوبت:
|
|
entity_type/entity_id پیدا میشود
|
|
│
|
|
▼
|
|
SmsWallet پیدا میشود
|
|
│
|
|
├─► balance < sms_price_rials:
|
|
│ لاگ خطا: «موجودی ناکافی» — پیامک ارسال نشد
|
|
│
|
|
└─► balance کافی:
|
|
SmsService::send(phone, message, entityType, entityId)
|
|
→ ارسال پیامک
|
|
→ deduct balance
|
|
→ ثبت debit transaction با description='یادآوری نوبت'
|
|
```
|
|
|
|
## نمایش در Frontend
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────┐
|
|
│ تنظیمات پیامک │
|
|
├──────────────────────┬──────────────────────────┤
|
|
│ کیف پول پیامک │ تنظیمات ارسال │
|
|
│ │ │
|
|
│ موجودی: │ یادآوری: ✅ ۳ ساعت قبل │
|
|
│ ۱۵۰,۰۰۰ ریال │ │
|
|
│ ≈ ۶۰۰ پیامک │ پس از ویزیت: ☐ غیرفعال │
|
|
│ │ │
|
|
│ [شارژ کیف پول] │ [ذخیره تنظیمات] │
|
|
├──────────────────────┴──────────────────────────┤
|
|
│ تاریخچه تراکنشها │
|
|
│ ✅ +۵۰۰,۰۰۰ ریال — شارژ — ۱۴۰۵/۰۳/۱۰ │
|
|
│ ⬇️ -۲۵۰ ریال — یادآوری نوبت — ۱۴۰۵/۰۳/۱۱ │
|
|
└─────────────────────────────────────────────────┘
|
|
```
|