# نقشه UI/UX — نسخه ۱.۱

این فایل تمام صفحات/فلوهای موردنیاز محصول رو لیست می‌کنه. جلوی هرکدوم وضعیتش
مشخصه: ✅ پیاده‌شده در این پکیج، 🔧 اسکلتش آماده‌ست ولی نیاز به تکمیل داره،
⬜ فقط طراحی‌شده و باید ساخته بشه.

## بخش ۱: ربات تلگرام (چت با کاربر)

> ⚠️ **محدودیت مهم پلتفرم تلگرام:** دکمه‌های Inline (شیشه‌ای/دکمه‌های زیر
> پیام) توسط اپلیکیشن تلگرام روی گوشی/دسکتاپ کاربر رندر می‌شن، نه توسط
> ربات. یعنی ربات (هیچ رباتی، نه فقط این پروژه) نمی‌تونه رنگ، افکت شیشه‌ای
> (glassmorphism)، گرد بودن گوشه‌ها یا فونت این دکمه‌ها رو تغییر بده —
> ظاهرشون کاملاً دست تلگرامه. تنها راه واقعی برای داشتن یک رابط کاملاً
> سفارشی (با افکت شیشه‌ای، فونت دلخواه، هر طراحی‌ای) داخل تلگرام،
> **Telegram Mini App (Web App)** هست: یک صفحه HTML/CSS/JS که داخل خود
> تلگرام باز می‌شه و کاملاً در اختیار ماست. این پروژه در حال حاضر Mini App
> نداره؛ اگه بخوایش، به‌عنوان قدم بعدی قابل‌ساختنه (نیاز به یک بک‌اند JSON
> جدا و اعتبارسنجی `initData` تلگرام داره). **پنل ادمین** (که یک وب‌سایت
> معمولیه، نه چت تلگرام) رو با همون افکت شیشه‌ای و فونت وزیرمتن طراحی
> کردیم چون اونجا کاملاً در کنترل ماست.

### ۱.۱ ورود و آشنایی
- ✅ `/start` — پیام خوش‌آمد + نمایش موجودی اولیه + منوی اصلی با دکمه
- ✅ `/start ref_<code>` — ورود از طریق لینک دعوت، ثبت رابطه referral
- ✅ `/start market_<id>` — لینک دعوت مستقیم به یک بازار خاص (برای دکمه
  «پیش‌نمایش در ربات» در پنل ادمین ساخت بازار)
- ✅ منوی اصلی (`/menu` یا دکمه «بازگشت به منو» در همه صفحات)
- ⬜ پیام آموزشی تعاملی چندمرحله‌ای برای کاربر کاملاً جدید

### ۱.۲ مرور و انتخاب بازار
- ✅ فهرست بازارهای باز به‌صورت دکمه، هرکدوم با شمارش معکوس
- ✅ انتخاب بازار → صفحه جزئیات (سؤال، قوانین، منبع تسویه، قیمت لحظه‌ای،
  آخرین مهلت پیش‌بینی به‌صورت تاریخ شمسی)
- 🔧 فیلتر بر اساس دسته‌بندی
- ⬜ جستجوی متنی بازار

### ۱.۳ ثبت پیش‌بینی (خرید)
- ✅ انتخاب گزینه → مبلغ (پریست یا دلخواه) → تایید نهایی → اجرا
- ❌ **فروش پیش‌بینی قبل از پایان بازار — طبق درخواست از ربات حذف شد.**
  کاربر از این نسخه به بعد فقط می‌تونه صبر کنه تا بازار تسویه بشه؛ گزینه
  فروش زودهنگام دیگه در منو نیست. (متد `MarketService::sell()` هنوز در
  بک‌اند هست، فقط از رابط کاربری ربات حذف شده — اگه بعداً خواستی
  برگردونی، فقط باید دوباره در `webhook.php` صداش بزنی.)

### ۱.۴ پرتفوی
- ✅ نمایش پوزیشن‌های باز (سود/زیان لحظه‌ای رنگی) و تسویه‌شده، بدون دکمه فروش

### ۱.۵ گیمیفیکیشن
- ✅ `/daily` — دریافت پاداش روزانه + استریک
- ✅ XP/Level خودکار بعد از هر خرید
- ✅ `/achievements` — لیست کامل دستاوردها (گرفته‌شده ✅ / نگرفته 🔒)
- ✅ `/challenge` — چالش امروز + نوار پیشرفت زنده (اگه ادمین چالش امروز رو
  تعریف کرده باشه؛ صفحه مدیریت چالش‌ها هنوز در پنل نیست، فعلاً باید یک
  ردیف در جدول `daily_challenges` مستقیم از phpMyAdmin اضافه بشه — رو نقشه
  اولویت‌بندی زیر هست)
- ❌ `/tournaments` — طبق درخواست از رابط ربات حذف شد (v2.0). بک‌اند
  (`src/TournamentService.php`) و مدیریتش در پنل ادمین باقی مونده.
- ✅ `/rank` — جدول رتبه‌بندی **۱۰۰ نفر برتر در ۵ صفحه** (۲۰ نفر هر صفحه)
  با دکمه قبلی/بعدی، و **۴ بازه زمانی**: روزانه، ماهانه (شمسی)، سالانه
  (شمسی)، کل زمان‌ها — رتبه خود کاربر همیشه پایین صفحه نمایش داده می‌شه
- ✅ پیام خودکار «level up» — با هر افزایش سطح، achievement مربوطه
  (`level_5`, `level_10`) خودکار چک و اعطا می‌شه؛ پیام مستقیم به کاربر
  هنوز اضافه نشده (فقط از طریق `/achievements` قابل مشاهده‌ست)

### ۱.۶ دعوت دوستان
- ✅ `/invite` — لینک اختصاصی + تعداد دعوت موفق

### ۱.۷ اعلان‌ها (Push)
- ✅ اعلان خودکار وقتی بازاری که کاربر توش پوزیشن داره تسویه می‌شه
  (`cron/notify.php`)
- ✅ یادآوری روزانه «پاداش امروزتو نگرفتی» برای کسایی که چک‌این نکردن
- ✅ پیام تبلیغاتی/اطلاع‌رسانی ثابت — از پنل ادمین (تنظیمات → پیام
  تبلیغاتی) قابل تنظیمه، پایین منوی اصلی و فهرست بازارها نمایش داده می‌شه
- ✅ ارسال پیام همگانی یک‌باره (Broadcast) — از پنل ادمین
- ⬜ اعلان شروع بازار جدید در دسته‌بندی موردعلاقه کاربر

## بخش ۲: پنل مدیریت (وب، مرورگر)

### ۲.۱ احراز هویت
- ✅ صفحه لاگین + محدودیت تلاش + نقش‌ها (superadmin/moderator/settler)
- ✅ ساخت اولین ادمین بدون ترمینال (خود `admin/index.php` وقتی هیچ ادمینی
  نباشه فرم راه‌اندازی رو نشون می‌ده، خودقفل‌شونده بعد از اولین استفاده)
- ✅ افزودن ادمین‌های بعدی از داخل پنل (صفحه کاربران)

### ۲.۲ داشبورد
- ✅ آمار کلی + هشدارها + مسابقات فعال

### ۲.۳ مدیریت بازارها
- ✅ فرم کامل‌تر ساخت بازار: همه فیلدهای قبلی + مهلت اعلام نتیجه توسط
  ادمین (`resolves_by`) + گزینه «بازار ویژه» + **پیش‌نمایش زنده تاریخ
  شمسی** کنار فیلدهای تاریخ + بعد از ساخت، **لینک مستقیم پیش‌نمایش در
  ربات** (`https://t.me/username?start=market_ID`)
- ✅ تسویه بازار یا ابطال با بازگشت وجه
- ⬜ ویرایش بازار قبل از شروع
- ⬜ لیست/جستجوی همه بازارها با فیلتر وضعیت

### ۲.۴ مدیریت کاربران
- ✅ جستجو، پرچم تقلب، مسدود/رفع مسدودی، تنظیم دستی موجودی، افزودن ادمین

### ۲.۵ گیمیفیکیشن (مدیریت محتوا)
- ⬜ صفحه مدیریت Achievement (فعلاً از phpMyAdmin مستقیم روی جدول `achievements`)
- ⬜ صفحه مدیریت Daily Challenge (فعلاً از phpMyAdmin مستقیم روی جدول `daily_challenges`)
- ✅ صفحه مدیریت Tournament — ساخت، فعال‌سازی، محاسبه امتیاز، پایان و
  **تقسیم استخر جوایز**: مجموع ورودیه‌ها منهای کارمزد پلتفرم (درصدی، از
  تنظیمات)، باقیمانده بین رتبه‌های برنده به‌نسبت درصد تعریف‌شده تقسیم می‌شه

### ۲.۶ تنظیمات و ابزار
- ✅ صفحه «تنظیمات» — **تمام متغیرهای اقتصادی/سیستمی** (جدول `settings`)
  با برچسب فارسی، قابل‌ویرایش مستقیم از پنل
- ✅ صفحه «پیام همگانی» — ارسال به همه کاربران، تکه‌تکه (Chunked) برای
  جلوگیری از timeout روی هاست اشتراکی
- ✅ صفحه «Webhook» — ثبت/بررسی/حذف webhook بدون نیاز به ترمینال
- ✅ `public/debug.php` — بررسی کامل سلامت راه‌اندازی (PHP، دیتابیس،
  جدول‌ها، ادمین، توکن ربات، وضعیت webhook)

### ۲.۷ گزارش‌ها و ممیزی
- ⬜ صفحه نمایش `admin_audit_log` (جدول از قبل پر می‌شه، فقط صفحه نمایش نیست)
- ⬜ خروجی CSV/Excel

## اولویت‌بندی پیشنهادی برای نسخه بعد (v1.3)

۱. صفحات مدیریت Achievement و Daily Challenge در پنل (الان فقط از
   phpMyAdmin قابل تعریفن)
۲. صفحه نمایش `admin_audit_log`
۳. Social Challenge (چالش به دوست مشخص)
۴. نمودار قیمت تاریخی بازارها (نیاز به جدول `price_snapshots` جدید)
۵. Telegram Mini App برای یک تجربه کاملاً سفارشی (شیشه‌ای/گلس) داخل خود
   تلگرام، فراتر از محدودیت دکمه‌های Inline استاندارد

