# Telegram Referral Event Bot — cài trực tiếp trong public_html

## Cấu trúc chính

Upload **toàn bộ file và thư mục bên trong gói ZIP** vào:

```text
public_html/
```

Sau khi giải nén, cấu trúc phải giống:

```text
public_html/
├── index.php
├── webhook.php
├── set-webhook.php
├── database.sql
├── .htaccess
├── config/
├── src/
├── miniapp/
└── admin/
```

Không upload thêm một thư mục bọc bên ngoài.

## Yêu cầu

- PHP 8.1+
- MySQL hoặc MariaDB
- Tên miền có HTTPS
- PHP extensions: PDO MySQL, cURL, JSON, mbstring

## Cài đặt

### 1. Tạo database

Tạo database MySQL rồi import file:

```text
database.sql
```

### 2. Sửa cấu hình

Mở:

```text
config/config.php
```

Cập nhật:

```php
'app_url' => 'https://tenmiencuaban.com',
'bot_token' => 'TOKEN_BOT',
'bot_username' => 'USERNAME_BOT_KHONG_CO_DAU_@',
'admin_ids' => [123456789],
```

Và thông tin MySQL:

```php
'db' => [
    'host' => 'localhost',
    'name' => 'telegram_event_bot',
    'user' => 'database_user',
    'pass' => 'database_password',
    'charset' => 'utf8mb4',
],
```

### 3. Đổi mật khẩu trang admin

Mở:

```text
admin/index.php
```

Tìm:

```php
$adminPassword = 'CHANGE_ME_ADMIN_PASSWORD';
```

Đổi thành mật khẩu mạnh.

### 4. Cài webhook

Mở:

```text
https://tenmiencuaban.com/set-webhook.php?key=CHANGE_ME_INSTALL_KEY
```

Có thể đổi `install_key` trong `config/config.php`.

Webhook sẽ là:

```text
https://tenmiencuaban.com/webhook.php
```

### 5. Cấu hình Mini App

Trong BotFather dùng `/setmenubutton` và đặt URL:

```text
https://tenmiencuaban.com/miniapp/
```

### 6. Trang quản trị

```text
https://tenmiencuaban.com/admin/
```

## Các lệnh bot

- `/start`
- `/menu`
- `/rank`
- `/invite`
- `/withdraw`
- `/cancel`

Lệnh admin:

- `/stats`
- `/event`
- `/broadcast Nội dung cần gửi`

## Reset giải

Vào trang quản trị và tạo giải mới. Hệ thống sẽ:

- Kết thúc giải đang chạy.
- Giữ nguyên lịch sử giải cũ.
- Tạo bảng xếp hạng mới cho giải mới.
- Không xóa tài khoản thành viên.
- Không xóa lịch sử rút tiền.


## Nâng cấp từ bản cũ

Nếu đã import database của bản trước, hãy import thêm:

```text
upgrade_v2.sql
```

Bản V2 thay đổi:
- Giải thưởng cố định cho Top 1, Top 2, Top 3.
- Không cộng tiền theo từng lượt giới thiệu.
- Mini App không hiển thị số dư.
- Chỉ Top 1–3 của giải đã kết thúc mới gửi được QR.
- QR gửi thẳng về bot admin kèm thứ hạng và số tiền.
- Chuẩn hóa toàn bộ bảng sang UTF-8 `utf8mb4`.
