شاهکار Main Services V8.4 — وضعیتهای عملیاتی workflow
> version: 3.1 | last_updated: 2026-08-10 | audience: admin
> منبع: `docs/admin/Shahkar Main Services V8.4.pdf`
ایده
بدنهٔ درخواست در **لحظهٔ اجرا** از مشتری / سفارش ساخته میشود.
وضعیتهای عملیاتی = **متدهای API** (lifecycle + استعلام) — نه یکی برای هر نوع سرویس.
تمایز سرویس فقط با فیلد `service.type` (جدول ۵-۱) است که از **محصول / سفارش / اشتراک** خوانده میشود.
وضعیتهای عملیاتی (seed)
Main Services (lifecycle)
| متد | کلید |
|-----|------|
| `hc` | `http.shahkar_hc` |
| `estelaam` | `http.shahkar_estelaam` |
| `put` | `http.shahkar_put` |
| `update` | `http.shahkar_update` |
| `transfer` | `http.shahkar_transfer` |
| `close` | `http.shahkar_close` |
| `delete` | `http.shahkar_delete` |
Estelaam API V8.6 (استعلام)
| متد | کلید |
|-----|------|
| `provider-enquiry` | `http.shahkar_provider_enquiry` |
| `classifier-enquiry` | `http.shahkar_classifier_enquiry` |
| `enquiry` | `http.shahkar_enquiry` |
| `report` | `http.shahkar_report` |
| `serviceID-matching` (+2/+3) | `http.shahkar_serviceID_matching…` |
| `providers_summary` | `http.shahkar_providers_summary` |
| `serviceReport` | `http.shahkar_serviceReport` |
جزئیات استعلام و Mobile: [shahkar-estelaam-api.md](./shahkar-estelaam-api.md)
دسته: **شاهکار** (`shahkar.common`)
در فرم Filament با `shahkar_dynamic_body`، بلوک **«چه چیزی ارسال میشود؟»** فیلدهای همان متد را نشان میدهد.
از کجا `service.type` میآید؟
اولین مقدار عددی معتبر از این منابع (به ترتیب):
مثال روی محصول ADSL:
```json
{ "shahkar_service_type": 3 }
```
| type | سرویس |
|------|--------|
| 1 | تلفن ثابت |
| 2 | سیمکارت |
| 3 | ADSL |
| 4 | WiMAX |
| 5 | وایرلس |
| 6 | وایفای |
| 8 | SAP |
| 10 | WiFiMobile |
| 12 | PRI |
| 13 | موبایل ماهوارهای |
| 15 | WLL |
| 16 | پهنای باند اختصاصی |
| 17 | Voip |
| 18 | TDLTE |
| 19 | CSU |
| 20 | Sip TRUNK |
| 22 | MASK |
| 23 | RADIO TRUNK |
| 24 | Debit Card |
| 25 | CP |
| 26 | Data Center |
| 27 | تلفن همگانی |
| 28 | پیامک صوتی |
| 29 | Domain |
| 30 | ResellerCode |
| 31 | APN |
WifiMobile (`10`) مسیر جدا (`rest/shahkar/wifimobile`) دارد؛ همان `http.shahkar_put` با type=10 کافی است.
نگاشت نوع مشتری → شاهکار
| نوع در BSS | `person` | `iranian` | شناسه |
|------------|----------|-----------|--------|
| حقیقی | 1 | 1 | کد ملی |
| اتباع | 1 | 0 | `foreign_id` + ملیت |
| حقوقی ایرانی | 0 | 1 | شناسه ملی + نماینده |
| حقوقی غیرایرانی | 0 | 0 | type=6 + نماینده |
خلاصه API
| مورد | مقدار |
|------|--------|
| Auth | `Authorization` از سرور بیرونی شاهکار |
| Health | `POST …/rest/shahkar/hc` |
| چرخه عمر | `POST …/rest/shahkar/{put\|update\|transfer\|close\|delete}` |
| استعلام | `POST …/shahkar/estelaam` |
پس از `put`/`update`/`transfer` موفق، `id` در `party.metadata.shahkar_class_id` ذخیره میشود.
Seed
```bash
/opt/cpanel/ea-php83/root/usr/bin/php artisan db:seed \
--class='Modules\Order\Database\Seeders\ShahkarWorkflowActionSeeder' --force
```
این seeder عملیات قدیمی «متد × نوع سرویس» را حذف میکند و lifecycle + استعلامهای V8.6 را نگه میدارد.