BSS HostKhaneh

شاهکار Main Services V8.4 — وضعیت‌های عملیاتی workflow

← بازگشت به راهنما

شاهکار 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` می‌آید؟



اولین مقدار عددی معتبر از این منابع (به ترتیب):

  • override اختیاری روی خود عملیات (`config.shahkar_service_type`) — فقط برای تست

  • فیلد سفارشی / metadata آیتم سفارش: `shahkar_service_type` یا `service_type`

  • `product_offerings.provisioning_config.shahkar_service_type`

  • metadata / provisioning_data اشتراک


  • مثال روی محصول 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 را نگه می‌دارد.

    بدنه و schema



  • `ShahkarPayloadBuilder` + نمونه‌های `schemas/`

  • کدهای پاسخ: `schemas/response_codes.json`