# سیستم مدیریت نمایندگان 3x-ui

این سیستم یک پنل مدیریت نمایندگان برای پنل 3x-ui است که به نمایندگان امکان ساخت و مدیریت کاربران را بدون نیاز به دسترسی مستقیم به پنل اصلی می‌دهد.

## ویژگی‌ها

- **پنل ادمین**: مدیریت پنل‌های 3x-ui و نمایندگان
- **پنل نماینده**: ساخت و مدیریت کاربران (حجم ترافیک و تاریخ انقضا)
- **اتصال به API پنل 3x-ui**: ارتباط مستقیم با پنل برای ساخت و مدیریت کاربران
- **مدیریت ترافیک**: ردیابی و محدودیت ترافیک کاربران
- **مدیریت تاریخ انقضا**: کنترل تاریخ انقضای کاربران

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

### 1. نیازمندی‌ها

- PHP 7.4 یا بالاتر
- MySQL/MariaDB
- Extension های PHP: PDO, cURL, JSON

### 2. نصب دیتابیس

```bash
mysql -u root -p < database.sql
```

یا از طریق phpMyAdmin فایل `database.sql` را import کنید.

### 3. تنظیمات

فایل `config.php` را باز کرده و تنظیمات دیتابیس را تغییر دهید:

```php
define('DB_HOST', 'localhost');
define('DB_NAME', '3xui_reseller');
define('DB_USER', 'root');
define('DB_PASS', '');
```

همچنین SALT را تغییر دهید:

```php
define('SALT', 'your-secret-salt-change-this');
```

### 4. اجرای اسکریپت نصب

برای ایجاد ادمین پیش‌فرض، فایل `setup.php` را یک بار اجرا کنید:

```bash
php setup.php
```

یا از طریق مرورگر: `http://your-domain/setup.php`

### 5. دسترسی پیش‌فرض

**ادمین:**
- نام کاربری: `admin`
- رمز عبور: `admin123`

⚠️ **توجه**: پس از اولین ورود، رمز عبور ادمین را تغییر دهید!

### 6. تست اتصال به API

قبل از استفاده، اتصال به پنل 3x-ui را تست کنید:

```bash
php test_api.php
```

یا از طریق مرورگر: `http://your-domain/test_api.php`

## استفاده

### 1. ورود به عنوان ادمین

1. وارد صفحه لاگین شوید
2. نوع کاربر را "مدیر" انتخاب کنید
3. با نام کاربری و رمز عبور ادمین وارد شوید

### 2. افزودن پنل 3x-ui

1. از منوی "مدیریت پنل‌ها" وارد شوید
2. روی "افزودن پنل جدید" کلیک کنید
3. اطلاعات پنل را وارد کنید:
   - نام پنل
   - آدرس پنل (URL)
   - نام کاربری پنل
   - رمز عبور پنل

### 3. افزودن نماینده

1. از منوی "مدیریت نمایندگان" وارد شوید
2. روی "افزودن نماینده جدید" کلیک کنید
3. اطلاعات نماینده را وارد کنید:
   - نام کاربری
   - رمز عبور
   - انتخاب پنل
   - اطلاعات تماس (اختیاری)

### 4. ورود به عنوان نماینده

1. وارد صفحه لاگین شوید
2. نوع کاربر را "نماینده" انتخاب کنید
3. با نام کاربری و رمز عبور نماینده وارد شوید

### 5. ساخت کاربر جدید

1. از منوی "مدیریت کاربران" وارد شوید
2. روی "افزودن کاربر جدید" کلیک کنید
3. اطلاعات کاربر را وارد کنید:
   - انتخاب Inbound
   - ایمیل کاربر
   - یادداشت (اختیاری)
   - حد ترافیک (GB) - 0 برای نامحدود
   - تعداد روز اعتبار - 0 برای نامحدود

### 6. مدیریت کاربران

- **ویرایش**: روی آیکون ویرایش کلیک کنید
- **حذف**: روی آیکون حذف کلیک کنید
- **مشاهده آمار**: ترافیک مصرفی و تاریخ انقضا در جدول نمایش داده می‌شود

## ساختار فایل‌ها

```
sit/
├── admin/              # پنل ادمین
│   ├── dashboard.php
│   ├── panels.php
│   └── representatives.php
├── representative/     # پنل نماینده
│   ├── dashboard.php
│   └── users.php
├── api/               # کلاس‌های API
│   └── XrayAPI.php
├── includes/          # فایل‌های مشترک
│   ├── header.php
│   └── footer.php
├── config.php         # تنظیمات
├── database.sql       # ساختار دیتابیس
├── index.php          # صفحه اصلی
├── login.php          # صفحه ورود
└── logout.php         # خروج از سیستم
```

## همگام‌سازی ترافیک

برای به‌روزرسانی خودکار ترافیک کاربران، می‌توانید اسکریپت `sync_traffic.php` را به صورت cron job اجرا کنید:

```bash
# هر 5 دقیقه
*/5 * * * * php /path/to/sync_traffic.php

# یا هر ساعت
0 * * * * php /path/to/sync_traffic.php
```

## نکات امنیتی

1. رمز عبور ادمین پیش‌فرض را تغییر دهید
2. SALT را در فایل config.php تغییر دهید
3. از HTTPS استفاده کنید
4. دسترسی به فایل‌های حساس را محدود کنید
5. به‌روزرسانی‌های امنیتی را نصب کنید
6. فایل `setup.php` و `test_api.php` را پس از نصب حذف کنید (یا محافظت کنید)

## پشتیبانی

برای مشکلات و سوالات، لطفاً issue در repository ایجاد کنید.

## مجوز

این پروژه تحت مجوز GPL-3.0 منتشر شده است.
