CRM/docs/P2_PROFESSIONAL_CRM_FA.md

101 خطوط
6.4 KiB
Markdown
خام سرزنش تاریخچه

مخزن ambiguous runes header

راهنمای مخزن ambiguous runes توضیحات

# راهنمای فاز P2 — CRM حرفه‌ای
این فاز قابلیت‌های حرفه‌ای فروش را روی پایه امن P0/P1 اضافه می‌کند. داشبوردهای نقش‌محور حذف یا جایگزین نشده‌اند و مسیر `/` همچنان پس از ورود، داشبورد مجاز کاربر را نمایش می‌دهد.
## قابلیت‌های تحویل‌شده
- داشبورد: حفظ داشبوردهای Admin/Supervisor/Agent، refresh دستی و دوره‌ای، loading و error/retry واقعی، و ترجیحات شخصی ویجت‌ها.
- فرصت فروش: چند پایپ‌لاین و چند مرحله، برد کانبان، مجموع ارزش مرحله، ارزش وزنی، workspace جزئیات، تاریخچه مرحله، بستن موفق/ناموفق با دلیل و مبلغ نهایی، و optimistic locking با `version`.
- بهره‌وری: جست‌وجوی سراسری scopeشده برای Lead/Deal/Company/Contact/Call، نماهای ذخیره‌شده private/team/public، و ترجیحات اعلان و داشبورد.
- هوشمندی: امتیازدهی deterministic لید با breakdown و سطح cold/warm/hot، SLA برای اولین تماس، پیگیری و فرصت راکد، تشخیص idempotent و اعلان قابل mute.
- پیکربندی: اتوماسیون محدود و قابل audit برای ایجاد Task، اعلان و تغییر اولویت لید؛ triggerهای واقعی `lead_created`، `lead_scored`، `deal_stage_changed` و `sla_breached`؛ سقف اجرا و event key ضدتکرار.
- فیلد سفارشی: تعریف فیلد برای Lead/Deal/Company/Contact با نوع‌های متنی، عددی، تاریخ، boolean و انتخابی؛ ذخیره typed و indexپذیر و کنترل visibility نقش.
- کیفیت و اسکریپت: strengths/improvement areas، acknowledgement کارشناس و پاسخ او، metadata اسکریپت شامل category/source/questions/disclosures/template و جست‌وجوی سروری.
- گزارش و اعلان: گزارش عملیات فروش شامل pipeline/forecast/won/SLA/task، فیلتر اعلان خوانده‌نشده و لینک ترجیحات.
## مسیرهای UI
- `/` داشبورد نقش‌محور و صفحه پیش‌فرض
- `/deals` برد فرصت‌ها
- `/deals/{id}` workspace فرصت و تاریخچه مرحله
- `/operations` مرکز SLA، اتوماسیون، فیلد سفارشی و ترجیحات
- `/reports` تب «عملیات فروش و SLA»
- `/sales-scripts` اسکریپت‌های توسعه‌یافته
- `/quality-reviews` ارزیابی و acknowledgement
جست‌وجوی سراسری در Header با `Ctrl+K` در دسترس است.
## APIهای اصلی
| حوزه | Endpointهای اصلی |
|---|---|
| Pipeline | `GET /api/pipelines`, `POST /api/pipelines`, `GET /api/pipelines/{id}/board`, `PATCH /api/deals/{id}/stage` |
| Search/View | `GET /api/global-search`, `GET/POST/DELETE /api/saved-views` |
| Preferences | `GET/PUT /api/workspace-preferences` |
| Scoring/SLA | `POST /api/leads/{id}/score`, `POST /api/leads/bulk-score`, `GET/POST /api/sla-rules`, `POST /api/sla/detect`, `PATCH /api/sla-breaches/{id}/resolve` |
| Automation | `GET/POST /api/automations`, `POST /api/automations/{id}/run`, `GET /api/automation-runs` |
| Custom fields | `GET/POST /api/custom-fields`, `GET/PUT /api/custom-field-values/{type}/{id}` |
| QA | `POST /api/quality-reviews/{id}/acknowledge` |
| Reports | `GET /api/reports/operations` |
تمام endpointهای رکوردی مجوز و scope مالک/تیم را در backend اعمال می‌کنند. مخفی‌کردن کنترل در UI جایگزین authorization سرور نیست.
## مجوزهای جدید
`view_pipelines`, `manage_pipelines`, `move_deals`, `close_deals`, `manage_saved_views`, `share_team_views`, `use_global_search`, `score_leads`, `view_sla`, `manage_sla`, `manage_automations`, `view_automation_logs`, `manage_custom_fields`, `acknowledge_quality_reviews`, `manage_dashboard_preferences`, `manage_notification_preferences`.
بعد از deploy این فرمان را اجرا کنید تا permissionهای جدید ساخته و نقش‌های پیش‌فرض همگام شوند:
```powershell
php artisan permissions:sync-defaults
```
## Scheduler و عملیات
پایش SLA هر ۱۵ دقیقه در scheduler ثبت شده و از `withoutOverlapping` و event key یکتا استفاده می‌کند. اجرای دستی و idempotent:
```powershell
php artisan sla:monitor
```
در production اجرای `php artisan schedule:run` در هر دقیقه الزامی است. اعلان SLA ترجیح `notification_type=sla` را رعایت می‌کند.
## مهاجرت و rollback
پنج migration این فاز با prefixهای `030000` تا `034000` به‌ترتیب pipeline، preferences، scoring/SLA، automation/custom fields و QA/scripts را ایجاد می‌کنند.
پیش از migration از دیتابیس backup بگیرید:
```powershell
php artisan migrate --force
php artisan permissions:sync-defaults
```
برای rollback کامل P2 در محیط کنترل‌شده، آخرین پنج migration را برگردانید:
```powershell
php artisan migrate:rollback --step=5 --force
```
Rollback جدول‌ها و ستون‌های P2 را حذف می‌کند؛ در production بازیابی داده‌های pipeline/history/custom fields باید از backup انجام شود. ابتدا روی staging تمرین شود.
## کنترل کیفیت
```powershell
cd backend
php artisan test
vendor\bin\pint --test
cd ..\frontend
npm run lint
npm run test:run
npm run build
npm run test:e2e
```
تست `ProfessionalCrmP2Test` scope تیم، بستن فرصت و version conflict، audit، search/view/preferences، scoring/SLA، idempotency اتوماسیون، typed custom field و acknowledgement QA را پوشش می‌دهد. تست کامپوننت rollback کانبان و خطای جست‌وجو و Playwright مسیر جست‌وجو تا جابه‌جایی فرصت را پوشش می‌دهند.
## محدودیت‌های عمدی
Automation یک DSL محدود است و PHP/SQL دلخواه اجرا نمی‌کند. actionهای مجاز فقط `create_task`، `notify` و `set_lead_priority` هستند. برای افزودن action جدید، validation، authorization، audit و تست idempotency هم‌زمان توسعه داده شوند.