# چکشا — اسکریپت مزایده امن برای ایران

این بسته برای اکسترکت در مسیر اصلی دامنه `chaksha.ir` آماده شده است.

## مسیرهای مهم
- `index.php` — ورودی اصلی پلتفرم
- `install.php` — نصب‌کننده دیتابیس و داده اولیه
- `db.php` — اتصال دیتابیس
- `config.php` و `config.local.php` — تنظیمات پروژه
- `database/cheksha_schema.sql` — اسکیما کامل
- `database/cheksha_seed.sql` — داده‌های اولیه
- `includes/sms.php` — ماژول پیامک
- `includes/payment.php` — ماژول زرین‌پال
- `includes/kyc_zibal.php` — هوک‌های احراز هویت
- `includes/ai_helper.php` — تولید متن آگهی با OpenAI
- `download.php` — دانلود امن فایل‌های دیجیتال

## مراحل راه‌اندازی
1. فایل ZIP را در مسیر `public_html` یا مسیر متناظر با `chaksha.ir` اکسترکت کن.
2. از فعال بودن PHP 8.1+، PDO MySQL، cURL و mod_rewrite مطمئن شو.
3. اگر دیتابیس `chaksha_db` از قبل ساخته نشده باشد، `db.php` در اولین اجرا تلاش می‌کند آن را خودکار ایجاد کند؛ در غیر این صورت کافی است خودت آن را بسازی.
4. آدرس `https://chaksha.ir/install.php` را باز کن و روی شروع نصب بزن.
5. بعد از نصب، وارد اکانت‌های نمونه شو.

## اطلاعات دیتابیس
فایل `db.php` دقیقاً با مشخصات زیر تنظیم شده است:
- host: `localhost`
- db: `chaksha_db`
- user: `chaksha_root`
- pass: `Navid5731`

## اکانت‌های نمونه
- ادمین: `admin@chaksha.ir` / `Admin@12345`
- فروشنده: `seller@chaksha.ir` / `Seller@12345`
- خریدار: `buyer@chaksha.ir` / `Buyer@12345`

## پیامک Pattern — IPPanel
تابع `sendMSG()` در `includes/sms.php` قرار دارد و از همان منطق عدد memorable و Pattern Code استفاده می‌کند.

### تنظیمات
در `config.local.php` این مقادیر قرار داده شده‌اند:
- `ENABLE_SMS_LOGIN`
- `IPPANEL_API_KEY`
- `IPPANEL_FROM_NUMBER`
- `IPPANEL_LOGIN_PATTERN`
- `IPPANEL_REGISTER_PATTERN`
- `IPPANEL_WELCOME_PATTERN`

### نکات اجرایی
- اگر endpoint قدیمی Pattern را می‌خواهی، `IPPANEL_USE_EDGE = false` باشد.
- اگر خواستی از Edge استفاده کنی، `IPPANEL_USE_EDGE = true` بگذار و در صورت نیاز payload را طبق پنل خودت تنظیم کن.
- برای تست بدون پیامک واقعی، `DEMO_SHOW_OTP = true` کن تا کد ورود در Flash نمایش داده شود.

## زرین‌پال
در `config.php` این مقادیر تنظیم شده‌اند:
- `ZARINPAL_MERCHANT_ID`
- `ZARINPAL_REQUEST_URL`
- `ZARINPAL_VERIFY_URL`
- `ZARINPAL_STARTPAY_URL`

### کال‌بک
زرین‌پال به `api/payment_callback.php` بازمی‌گردد. بعد از Verify، کیف پول کاربر شارژ می‌شود.

## احراز هویت Zibal
در `includes/kyc_zibal.php` سه هوک آماده است:
- `shahkarInquiry()`
- `nationalIdentityInquiry()`
- `postalCodeInquiry()`

تنظیمات:
- `ENABLE_ZIBAL_KYC`
- `ZIBAL_FACILITY_TOKEN`

### رفتار این نسخه
- اگر Zibal فعال باشد، bundle احراز هویت اجرا می‌شود.
- نتیجه در جدول `cheksha_verification_requests` ذخیره می‌شود.
- اگر همه استعلام‌ها مثبت باشند، `is_verified` کاربر نیز فعال می‌شود.

## هوش مصنوعی OpenAI
ماژول `includes/ai_helper.php` یک endpoint داخلی برای تولید:
- title
- summary
- description
- tags

در فرم ثبت مزایده دکمه «پیشنهاد متن با هوش مصنوعی» فعال است.

### تنظیمات
- `ENABLE_AI_HELPER`
- `OPENAI_API_KEY`
- `OPENAI_MODEL`

> برای امنیت، ماژول AI در این خروجی به‌صورت پیش‌فرض غیرفعال است و فقط کافی است کلید خودت را در `config.local.php` قرار بدهی.

## ساختار مزایده و سفارش
- هر محصول در `cheksha_products`
- هر مزایده در `cheksha_auctions`
- پیشنهادها در `cheksha_bids`
- ودیعه‌ها در `cheksha_wallet_holds`
- تراکنش‌ها در `cheksha_wallet_transactions`
- سفارش‌ها در `cheksha_orders`
- تحویل فایل در `cheksha_digital_deliveries`
- اختلاف‌ها در `cheksha_disputes`

## نکات امنیتی
- CSRF برای فرم‌های POST فعال است.
- دانلود فایل دیجیتال با توکن امن انجام می‌شود.
- کلیدهای سرویس‌ها در سمت سرور هستند و در کلاینت expose نمی‌شوند.
- توصیه می‌شود پس از استقرار، سطح دسترسی پوشه‌های `storage` را کنترل و بکاپ منظم فعال کنی.

## بهینه‌سازی پیشنهادی نسخه بعدی
- پنل تسویه ادمین
- Anti-fraud پیشرفته‌تر روی IP/Device
- ماژول پیام داخلی سفارش
- پردازش تصویر و watermark برای فایل‌های دیجیتال
- موتور AutoBid و Proxy Bidding واقعی
