# نیازمندی‌ها و چک‌لیست نصب — سیستم RFQ-Core

نسخه مرجع کد: **RFQ-Core 12.1**

---

## ۱. نیازمندی‌های سخت‌افزاری (حداقلی)

| مورد | حداقل پیشنهادی | توصیه برای استفاده واقعی |
|------|----------------|---------------------------|
| CPU | ۲ هسته | ۴ هسته |
| RAM | ۲ گیگابایت | ۴ گیگابایت یا بیشتر |
| دیسک | ۱۰ گیگابایت آزاد | ۲۰ گیگابایت+ (برای پیوست‌ها) |
| شبکه | دسترسی اینترنت برای نصب پکیج‌ها | سرور با IP ثابت یا دامنه |

---

## ۲. نیازمندی‌های نرم‌افزاری (سرور)

| نرم‌افزار | نسخه |
|-----------|------|
| سیستم‌عامل | Linux (Ubuntu 22.04+ توصیه می‌شود) یا Windows با WAMP/Laragon برای تست |
| PHP | **۸.۲ یا ۸.۳** |
| افزونه‌های PHP | `bcmath`, `ctype`, `curl`, `dom`, `fileinfo`, `json`, `mbstring`, `openssl`, `pdo`, `pdo_mysql`, `tokenizer`, `xml`, `zip`, `gd` یا `imagick` |
| Composer | ۲.x |
| MySQL یا MariaDB | MySQL **۸.۰+** یا MariaDB 10.6+ |
| Node.js | **۱۸ یا ۲۰** (برای ساخت assets با Vite/Breeze) |
| npm | همراه Node |
| وب‌سرور | Nginx یا Apache (یا `php artisan serve` فقط برای تست) |

اختیاری ولی مفید:
- Git
- Supervisor (برای صف‌ها در آینده)
- SSL (HTTPS) برای محیط واقعی

---

## ۳. پکیج‌های Composer ضروری

پس از ساخت پروژه Laravel:

| پکیج | کاربرد |
|------|--------|
| `laravel/framework` ^11 | هسته فریم‌ورک |
| `laravel/breeze` | ورود / خروج / ثبت‌نام پایه |
| `spatie/laravel-permission` | نقش و مجوز |
| (اختیاری بعداً) `barryvdh/laravel-dompdf` | PDF سروری |
| (اختیاری بعداً) `laravel/sanctum` | API موبایل |

---

## ۴. حساب‌ها و اطلاعات قبل از شروع

آماده کنید:

- [ ] نام دیتابیس (مثلاً `rfq_core`)
- [ ] کاربر و رمز MySQL
- [ ] آدرس سایت / دامنه یا `http://127.0.0.1:8000` برای تست محلی
- [ ] (اختیاری) تنظیمات SMTP برای ارسال ایمیل در `.env`

---

## ۵. چک‌لیست نصب (خلاصه)

چاپ کنید و تیک بزنید:

### مرحله A — محیط
- [ ] PHP 8.2+ نصب و در PATH است (`php -v`)
- [ ] Composer نصب است (`composer -V`)
- [ ] MySQL در حال اجرا است
- [ ] Node و npm نصب است (`node -v`, `npm -v`)

### مرحله B — پروژه
- [ ] پروژه Laravel 11 ساخته شد
- [ ] فایل‌های پکیج RFQ-Core روی پروژه کپی شد
- [ ] `composer require spatie/laravel-permission` اجرا شد
- [ ] Spatie publish شد
- [ ] Breeze نصب و `blade` انتخاب شد
- [ ] `npm install && npm run build` موفق بود

### مرحله C — پیکربندی
- [ ] فایل `.env` با دیتابیس و `APP_KEY` تنظیم شد
- [ ] conflict احتمالی migration جدول `users` با Breeze بررسی شد
- [ ] `php artisan migrate` بدون خطا
- [ ] `php artisan db:seed` بدون خطا
- [ ] `php artisan storage:link` اجرا شد

### مرحله D — middleware و نقش‌ها
- [ ] middlewareهای `locale` و `module` در bootstrap ثبت شدند (طبق راهنما)
- [ ] User مدل از `HasRoles` اسپاتی استفاده می‌کند
- [ ] ورود با `admin@example.com` / `password` ممکن است

### مرحله E — تست دود (Smoke Test)
- [ ] لاگین
- [ ] داشبورد / کانبان باز می‌شود
- [ ] ایجاد سازمان
- [ ] ایجاد مخاطب
- [ ] ایجاد پرونده
- [ ] Drag در کانبان (در صورت فعال بودن JS)
- [ ] ایجاد وظیفه
- [ ] آپلود یک پیوست کوچک
- [ ] گزارش پایپ‌لاین

---

## ۶. محدودیت‌هایی که بعد از نصب «کار نمی‌کنند» مگر جداگانه راه‌اندازی شوند

| قابلیت | نیاز اضافه |
|--------|------------|
| دریافت خودکار ایمیل (IMAP) | سرور ایمیل + کرون + کتابخانه IMAP |
| PDF حرفه‌ای سروری | پکیج DomPDF و تنظیمات |
| 2FA استاندارد با QR | پکیج Google2FA |
| API موبایل با Token | Laravel Sanctum |
| ارسال ایمیل واقعی | SMTP صحیح در `.env` |

این‌ها باگ نیستند؛ خارج از محدوده هسته فعلی‌اند.
