# World Cup 2026 Prediction Bot - Gisu Academy

یک ربات تلگرام Production Ready برای مسابقه پیش‌بینی جام جهانی 2026 آکادمی گیسو.

## تکنولوژی‌های استفاده شده

- Python 3.13
- Aiogram 3.x
- SQLite
- Aiosqlite

## نصب و راه‌اندازی

1. نصب وابستگی‌ها:

```bash
pip install -r requirements.txt
```

2. تنظیم متغیرهای محیطی در فایل `.env`:

```
BOT_TOKEN=your_bot_token_here
ADMIN_IDS=123456789,987654321
MANDATORY_CHANNEL=GisouAcademy
```

3. اجرای ربات:

```bash
python bot/main.py
```

## ساختار پروژه

```
bot/
├── main.py              # نقطه ورود برنامه
├── config.py            # تنظیمات برنامه
├── database.py          # توابع دیتابیس SQLite
├── handlers/            # هندلرهای ربات
│   ├── start.py         # شروع و منوی اصلی
│   ├── registration.py  # ثبت نام کاربران
│   ├── dashboard.py     # داشبورد کاربری
│   ├── prediction.py    # پیش‌بینی مسابقات
│   ├── ranking.py       # جدول رتبه‌بندی
│   ├── referral.py      # دعوت دوستان
│   ├── rewards.py       # جوایز
│   └── admin.py         # پنل مدیریت
├── keyboards/           # کیبوردهای دکمه‌ها
│   ├── user.py
│   └── admin.py
├── states/              # حالت‌های FSM
│   ├── registration.py
│   ├── prediction.py
│   └── admin.py
├── services/            # سرویس‌های تجاری
│   ├── scoring.py       # محاسبه امتیاز
│   ├── referrals.py     # سیستم ارجاع
│   └── ranking.py       # رتبه‌بندی
├── utils/               # توابع کمکی
│   ├── validators.py
│   └── helpers.py
└── data/
    └── bot.db           # دیتابیس SQLite
```

## ویژگی‌ها

### ثبت نام کاربر

- بررسی عضویت در کانال
- دریافت نام و نام خانوادگی
- دریافت شماره تماس از طریق Share Contact
- انتخاب نقش (دندانپزشک / دانشجو)

### پیش‌بینی مسابقات

- مشاهده مسابقات upcoming
- ثبت پیش‌بینی (یک پیش‌بینی برای هر مسابقه)
- ویرایش پیش‌بینی قبل از شروع مسابقه

### سیستم امتیازدهی

- ثبت پیش‌بینی: +2 امتیاز
- تشخیص صحیح برنده: +5 امتیاز
- تشخیص صحیح تفاضل گل: +3 امتیاز
- نتیجه دقیق: +10 امتیاز
- دعوت موفق: +2 امتیاز

### پنل مدیریت

- افزودن مسابقه
- مدیریت مسابقات (ویرایش/حذف)
- ثبت نتیجه مسابقه
- ارسال پیام همگانی
- خروجی اکسل
- جستجوی کاربر
