# راهنمای استفاده، Build و اولین تست دانشیار

این فایل کنار اسکریپت‌هاست تا وقتی پروژه را گرفتی بدانی از کجا شروع کنی.

## 1. پیش‌نیازها

- PHP 8.3 یا بالاتر
- Composer
- Node.js 20 یا بالاتر
- MySQL یا MariaDB
- Apache با DocumentRoot روی فولدر `public`

## 2. نصب وابستگی‌ها

از ریشه پروژه:

```bash
composer install
npm install
```

اگر روی ویندوز هستی:

```bat
cd /d C:\Users\SHAYAN\Desktop\Daneshyar
composer install
npm install
```

## 3. ساخت فایل env

```bash
cp .env.example .env
php artisan key:generate
```

داخل `.env` دیتابیس را تنظیم کن:

```env
APP_URL=http://127.0.0.1:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=daneshyar
DB_USERNAME=root
DB_PASSWORD=
```

## 4. ساخت دیتابیس و import schema

روش پیشنهادی در شروع پروژه این است که همین schema اصلی را import کنی:

```bash
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS daneshyar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p daneshyar < database/schema.sql
mysql -u root -p daneshyar < database/seed.sql
```

اگر می‌خواهی با تنظیمات `.env` و دیتابیس remote کار کنی:

```bash
pip install pymysql
python3 scripts/import_remote_database.py
```

این اسکریپت دیتابیس موجود در `DB_DATABASE` را می‌سازد و `schema.sql` و `seed.sql` را import می‌کند.

یا اگر می‌خواهی از migration لاراول استفاده کنی:

```bash
php artisan migrate:fresh --seed
```

## 5. Build فرانت‌اند

برای development:

```bash
npm run dev
```

برای production:

```bash
npm run build
```

یا با اسکریپت پروژه:

```bash
python3 scripts/build.py
```

برای build production، readiness check و ساخت package:

```bash
python3 scripts/build.py --production --ready-check --package
```

راهنمای کامل deploy روی Apache:

```text
scripts/DEPLOY_APACHE.md
```

## 6. اولین تست local

بعد از نصب Composer و ساخت `.env`:

```bash
php artisan serve
```

بعد در مرورگر باز کن:

```text
http://127.0.0.1:8000
http://127.0.0.1:8000/login
```

کاربر اولیه seed:

```text
username: superadmin
password: ChangeMe@1405
```

بعد از اولین ورود باید رمز عوض شود و اطلاعات لازم تکمیل شود.

## 7. تست‌های سریع قبل از Apache

```bash
npm run build
node scripts/php_parse_check.cjs
python3 scripts/apache_ready_check.py
```

اگر `apache_ready_check.py` گفت `vendor/autoload.php is missing` یعنی `composer install` هنوز اجرا نشده است.

اگر گفت `.env is missing` یعنی باید `.env.example` را کپی و تنظیم کنی.

## 8. آماده‌سازی برای Apache

Apache باید روی این فولدر point شود:

```text
Daneshyar/public
```

اشتباه رایج:

```text
Daneshyar/
```

این اشتباه است، چون فایل‌های حساس مثل `.env` و `storage` نباید public باشند.

بعد از آپلود روی سرور:

```bash
composer install --no-dev --optimize-autoloader
npm ci
npm run build
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan storage:link
```

## 9. ساخت package برای Apache

```bash
python3 scripts/package_for_apache.py
```

این اسکریپت فایل deployable می‌سازد و چیزهایی مثل `node_modules` را وارد package نمی‌کند.

## 10. وضعیت Providerهای خارجی

فعلا این‌ها عمدا placeholder هستند و موقع رسیدن به مرحله پیاده‌سازی باید اطلاعاتشان را بدهی:

- SMS provider documentation
- SMS API key / username / password
- Payment gateway documentation
- Payment gateway merchant id / keys

تا قبل از انتخاب provider، کد wallet و message آماده ساختار دیتابیس است ولی ارسال واقعی انجام نمی‌دهد.
