# چک‌لیست استقرار کامل — نسخه ۶
(داشبورد ERP + اسناد بازرگانی + CRM + بازیابی مدیرعامل + بکاپ خودکار + همگام‌سازی محلی)

سرور فعلی: cPanel — پلتفرم اصلی روی ریشه سایت (index.php + api.php + db.php).
همه فایل‌های جدید باید در **همان پوشه** (معمولاً `public_html`) قرار بگیرند تا api.php و پوشه vendor مشترک باشند.

## مرحله ۱ — آپلود فایل‌ها (File Manager)
| فایل | جایگاه | توضیح |
|---|---|---|
| `api.php` | جایگزین api.php فعلی | ⚠️ اول از نسخه فعلی بکاپ بگیرید. نسخه ۶ = v16 + جدول‌های جدید + بکاپ خودکار + endpoint های sync |
| `erp_dashboard.html` | کنار index.php | داشبورد ERP (تایم‌لاین ۱۳ مرحله‌ای، تابلو زنده، BI) |
| `documents.html` | کنار index.php | اسناد بازرگانی (PI، فاکتور، پکینگ‌لیست و…) |
| `crm.html` | کنار index.php | CRM و ارتباطات واتساپ |
| `manifest.json` + `icon.svg` + `sw.js` | کنار index.php | نصب موبایل (PWA) — بدون تنظیم اضافه |
| `verify_backups.php` | کنار index.php | راستی‌آزمایی بکاپ‌های خودکار |
| `restore_admin.php` | کنار index.php — موقت | فقط اگر روش SQL را استفاده نمی‌کنید؛ بعد از اجرا **حذف کنید** |

## مرحله ۲ — دیتابیس (phpMyAdmin → folad_db → تب SQL)
1. محتوای `migrate_erp_tables.sql` را اجرا کنید (جدول‌های purchase_timeline، erp_settings، companies، documents، crm_*، sync_deletions).
2. برای بازیابی حساب مدیرعامل، محتوای `restore_admin.sql` را اجرا کنید:
   - نام کاربری: `sarfrazian` — رمز: `Sarfraz@Fara2026!CEO` — نقش admin با همه دسترسی‌ها
   - (روش جایگزین: باز کردن `/restore_admin.php?key=FaraRestore2026` و سپس حذف فایل)

## مرحله ۳ — تنظیم کلید همگام‌سازی (الزامی قبل از استفاده از sync)
در `api.php` خط بالای فایل:
```php
define('FOLAD_SYNC_KEY', 'CHANGE-ME-LONG-RANDOM-SYNC-KEY');
```
یک رشته تصادفی **۴۰+ کاراکتری** بگذارید. تا وقتی مقدار پیش‌فرض باشد، endpoint های sync عمداً غیرفعال‌اند (403).

## مرحله ۴ — سرور محلی شرکت (وقتی مشخصات VM آماده شد)
1. XAMPP (یا LAMP) + کپی همان پلتفرم و همان دیتابیس (اولین sync خودش همه داده را می‌کشد؛ فقط ساختار جدول‌ها لازم است: dump بدون دیتا یا اجرای migrate + دامپ ساختار).
2. `sync_agent.php` کنار db.php؛ داخل فایل `CLOUD_API` (آدرس کامل api.php ابری) و `SYNC_KEY` (همان کلید مرحله ۳) را تنظیم کنید.
3. تست دستی: `php sync_agent.php` → باید «✅ همگام‌سازی کامل شد» چاپ شود.
4. Task Scheduler ویندوز: هر ۵ دقیقه `php C:\xampp\htdocs\folad\sync_agent.php` (یا cron لینوکس: `*/5 * * * *`).

## تست دود (Smoke Test)
- [ ] ورود با `sarfrazian` موفق است و پنل مدیریت کاربران را می‌بیند (نقش admin).
- [ ] `erp_dashboard.html`: ۶۰ قرارداد خرید + تایم‌لاین قابل ویرایش + خروجی اکسل.
- [ ] `documents.html`: انتخاب «Farafoulad Bartar Co.» → پیش‌نمایش انگلیسی LTR؛ انتخاب «فرافولاد برتر پارسیان توس» → فارسی RTL؛ ذخیره → شماره `FB-PI-…-0001`.
- [ ] در موبایل: منوی مرورگر → «Add to Home Screen» → آیکون فرافولاد نصب می‌شود (PWA).
- [ ] با حساب admin در داشبورد: Ctrl+K جستجوی سراسری، 🔔 اعلان‌ها، و منوی «🛡️ لاگ عملیات» دیده می‌شود.
- [ ] `crm.html`: ساخت مخاطب با شماره واتساپ → دکمه «💬 گفتگوی واتساپ» wa.me را با متن قالب باز می‌کند؛ در «نام در قراردادها» نام فروشنده واقعی بگذارید → قراردادها در پروفایل ظاهر می‌شوند.
- [ ] بعد از اولین ذخیره در هر ماژول، پوشه `backups/` روی هاست ساخته شده و `verify_backups.php?key=FaraVerify2026` ✅ نشان می‌دهد.
- [ ] `?action=sync_pull` بدون کلید → 403 (امن است).
- [ ] رمز مدیرعامل را تغییر دادید و `restore_admin.php` حذف شد.

## نکته HTTPS
کوکی نشست SameSite=Strict است؛ هر سه ماژول را از **همان دامنه/پروتکل** پلتفرم باز کنید تا نشست مشترک شود.
