Callino Button Bot (PHP)
========================

این پروژه یک ربات فروش خدمات تلگرام است که:

- فروش پریمیوم، استارز و شماره مجازی را پشتیبانی می‌کند.
- از پرداخت کارت به کارت (ارسال رسید + تأیید ادمین) استفاده می‌کند.
- پنل ادمین کامل داخل خود تلگرام دارد (با دستور /admin).
- امکان تعیین سود عددی و درصدی برای هر خدمت وجود دارد.
- آماده اتصال به وب‌سرویس کالینو (Callino) است.

پوشه‌ها و فایل‌های مهم
-----------------------

- config.php
  تنظیمات ربات، دیتابیس، کالینو و متن کارت به کارت.

- bootstrap.php
  لود کردن کلاس‌ها، اتصال به دیتابیس و تابع‌های مشترک.

- webhook.php
  هسته منطق ربات (کاربر + ادمین + سفارش و پرداخت).

- classes/Telegram.php
  کلاس درخواست‌های تلگرام.

- classes/Keyboard.php
  تعریف کیبوردهای کاربر و ادمین.

- api/CallinoApi.php
  اسکلت ارتباط با API کالینو (باید مقادیر endpoint و پارامترها را طبق مستندات واقعی اصلاح کنید).

- sql/schema.sql
  ساخت جدول‌های دیتابیس.

نحوه راه‌اندازی
----------------

1) ساخت دیتابیس
   یک دیتابیس جدید در MySQL با نام دلخواه (مثلاً callino_bot) بسازید و فایل sql/schema.sql را روی آن اجرا کنید.

2) تنظیم config.php
   - BOT_TOKEN را با توکن ربات خود از BotFather عوض کنید.
   - اطلاعات دیتابیس (DB_HOST/DB_NAME/DB_USER/DB_PASS) را ست کنید.
   - OWNER_ID را با آیدی عددی تلگرام خودتان تنظیم کنید.
   - CARD_INFO_FA را با اطلاعات کارت واقعی خودتان ویرایش کنید.
   - مقادیر CALLINO_API_KEY و CALLINO_API_BASE را طبق اطلاعات گرفته شده از @CallinooapiBot تنظیم کنید.

3) افزودن ادمین‌ها
   - یا OWNER_ID کافی است،
   - یا می‌توانید در جدول admins رکورد جدید با tg_id کارمندان وارد کنید.

4) افزودن خدمات
   - در تلگرام، به عنوان ادمین، دستور /admin را بزنید تا منوی ادمین ظاهر شود.
   - دستور /add_service را ارسال کنید و مراحل را دنبال کنید (نوع خدمت، عناوین، کد سرویس کالینو، قیمت پایه، سود عددی و درصدی).

5) تنظیم وبهوک
   لینک زیر را در مرورگر باز کنید (توکن و آدرس هاست خودتان را جایگزین کنید):

   https://api.telegram.org/botYOUR_BOT_TOKEN_HERE/setWebhook?url=https://YOURDOMAIN.COM/path/to/webhook.php

   اگر "ok" دریافت کردید، وبهوک ثبت شده است.

6) اتصال به کالینو
   در فایل api/CallinoApi.php تابع‌های orderPremium, orderStars, orderNumber, getOrderStatus
   به صورت اسکلت نوشته شده‌اند. طبق مستندات رسمی کالینو، مسیر endpoint و پارامترها را اصلاح کنید.
   سپس در تابع adminApprovePayment در webhook.php بعد از تأیید پرداخت، کالینو را صدا بزنید
   تا سفارش به صورت خودکار در پنل کالینو ثبت/انجام شود.

نکته مهم
--------

این پروژه به صورت کامل و بدون ionCube است و می‌توانید هر قسمت آن را ویرایش کنید.
قبل از استفاده روی کاربران واقعی، حتماً در یک سرور تست، فرآیند کامل ثبت سفارش، ارسال رسید و تأیید را آزمایش کنید.
