## وضعیت انجام کارها

### انجام‌شده
- حذف وابستگی مراحل کاریز لید (`virtual_stage`) و جایگزین با `sale_status` برای لیدها و `pipeline_stage` برای معاملات. فیلتر/نمایش لید بر اساس موفق/ناموفق.
- اضافه‌کردن 4 شماره تماس و `previous_owner`, `sale_status`, ثبت تاریخ جلالی/میلادی در لید جدید؛ چک تکراری روی 4 شماره؛ ایجاد خودکار معامله «معامله جدید» برای لید جدید یا لید تکراری.
- کاریز معاملات: تعریف مراحل جدید، فیلتر و کلیک‌پذیر در داشبورد، فیلتر در لیست معاملات.
- محصولات و چندمحصولی: جداول products/deal_products، API مدیریت محصول (ادمین)، انتخاب چندمحصولی در معامله، نمایش محصولات در کارت معامله.
- تغییر مرحله کاریز معاملات: فیلد در فرم معامله، کنترل سریع روی کارت (ارسال لینک پرداخت/پرداخت/مانده حساب برای Pending، برگزاری دوره/پشتیبانی/اتمام/مرجوعی برای Won).
- مودال «برگزاری دوره/پشتیبانی/مرجوعی»: گزینه دوره مجازی/حضوری، دسترسی/ارسال لینک، تاریخ برگزاری، مرحله بعدی (اتمام/پشتیبانی)، مرجوعی با دلیل (انتقال به ناموفق و sale_status=0).
- اتصال فعالیت به مراحل کاریز معاملات: فرم فعالیت فیلد مرحله کاریز معامله دارد و پس از ثبت، مرحله معامله مرتبط به‌روز می‌شود؛ انتخاب معامله در فعالیت (آخرین Pending یا انتخاب از لیست معاملات لید).
- ایمپورت داده: `persons2.sql` با نگاشت درست موفق/ناموفق؛ اسکریپت import با INSERT IGNORE برای تکراری‌ها.
- ثبت لید جدید: ذخیره `register_time_jalali` و `register_time` (میلادی) هنگام ایجاد، معامله جدید خودکار، sale_status=0.

### باقی‌مانده/بهبود
- فلو فعالیت: انتخاب صریح معامله از همه معاملات لید (اکنون انتخاب سریع آخرین Pending؛ نیاز به dropdown کامل و پاس به API).
- کنترل نقش برای تغییر سریع pipeline stage روی کارت معاملات (در صورت نیاز محدود به ادمین/CRM).
- نمایش جزئیات دوره/مرجوعی در کارت معامله (برچسب CourseInfo) و پاک‌سازی کامل کدهای virtual_stage باقی‌مانده.
- بهبود برچسب‌ها/متن‌ها و تست نهایی سناریوهای برگزاری دوره/مرجوعی و تغییر مرحله از فعالیت.
