TELEGRAM FF LIKE BOT — cPanel / PHP WEBHOOK
==============================================

এই ZIP-এ আপনার দেওয়া bot-এর join verification + premium button style + main menu system আপডেট করা হয়েছে।

FEATURES
--------
1. /start + /joinverify
2. Channel join gate
3. দুইটি JOIN CHANNEL button
4. Green VERIFY button
5. VERIFY চাপলে live getChatMember check
6. Joined হলে সরাসরি main menu (Reply Keyboard)
7. /menu দিলে:
   - Joined থাকলে সরাসরি menu
   - Joined না থাকলে আবার join screen
8. Menu/action callback-এও live membership check আছে
9. Main menu এখন persistent Reply Keyboard (Telegram Bot API-এর button style সহ):
   - primary = blue
   - success = green
   - danger = red
10. Custom emoji button icon IDs ব্যবহার করা হয়েছে
11. Main menu:
   BUY DAILY LIKE
   GUILD GLORY BOT
   UID CHECK API
   AUTO LIKE
   BOT STATUS
   MY INFO
   ADD MONEY
   RECENT ORDERS
   INVITE & EARN
   SUPPORT

নতুন যুক্ত (Invite & Earn / My Info / Support / Recent Orders)
-----------------------------------------------------------
- Invite & Earn: SHARE LINK, MY INVITE, BACK বাটন; প্রতি সফল রেফারে 0.5৳।
- My Invite: Total Successful Refers + Recent Invites, BACK বাটন।
- My Info: User ID, Total Invite, Balance, Total Given Like, Deposit + MY INVITE বাটন।
- Support: CONTACT ADMIN বাটন (লিংক config.php-এর SUPPORT_URL থেকে)।
- Recent Orders: ইউজারের শেষ ৫টি অর্ডার + BACK বাটন।
- সব ডাটা এখন MySQL ডাটাবেসে সেভ হয় (data/store.json আর লাগবে না)।

IMPORTANT
---------
- BOT-কে channel-এ Administrator করতে হবে।
- BOT_TOKEN অবশ্যই config.php-তে সঠিক থাকতে হবে।
- WEBHOOK_URL-এ আপনার আসল domain-এর webhook.php URL দিন।
- HTTPS/SSL চালু থাকতে হবে।
- Telegram custom emoji button icon-এর জন্য Bot/owner eligibility লাগতে পারে।
- যদি custom emoji icon না দেখায়, Telegram client/API eligibility বা Premium requirement চেক করুন।

CPANEL SETUP
------------
1. ZIP extract করে folder public_html-এর ভিতরে দিন।
2. config.php খুলুন।
3. BOT_TOKEN সেট করুন।
4. CHANNEL_USERNAME সেট করুন।
5. WEBHOOK_URL সেট করুন।
6. Browser-এ একবার:
   https://YOUR-DOMAIN.COM/bot/set_webhook.php
7. Telegram-এ /start পাঠান।

CHANNEL
-------
বর্তমান config-এ:
@w3xios_bd
Join URL:
https://t.me/w3xios_bd

যদি ২টি আলাদা channel ব্যবহার করতে চান, webhook.php-এর
joinKeyboard() এবং isChannelMember() অংশে দ্বিতীয় channel-এর
getChatMember check যোগ করতে হবে।

SECURITY
--------
BOT_TOKEN কাউকে দেবেন না।
যদি token public/shared হয়ে থাকে, @BotFather থেকে নতুন token নেওয়া নিরাপদ।
set_webhook.php এবং delete_webhook.php কাজ শেষ হলে public access থেকে সরিয়ে রাখা ভালো।

আপডেট (v3)
----------
- BACK / /menu / অন্য টেক্সট: শুধু ছোট মেসেজ "💎 Wᴇʟᴄᴏᴍᴇ ᴛᴏ W3XIOS SERVERS" আসবে।
- পুরো ডিটেইলস মেসেজ শুধু /start, /joinverify এবং VERIFY-এর পরে আসবে।
- মেইন মেনুর সব বাটন BIG LETTER।
- My Info: Total Withdrawal -> TOTAL GIVEN LIKE। অর্ডার ডেলিভারি হলে addGivenLikes($userId, $likes) কল করুন।
- রেফার সফল হলে রেফারারের ব্যালেন্স যোগ হবে + রেফারারকে নোটিফিকেশন যাবে।
- স্পিড: curl কানেকশন রিইউজ, চ্যানেল চেক ১২০ সেকেন্ড ক্যাশ, বটের নাম ক্যাশ, Telegram-কে আগে রিপ্লাই।

MYSQL SETUP (v4)
----------------
1. cPanel -> MySQL Databases: একটি database + user বানান, user-কে database-এ ALL PRIVILEGES দিন।
2. phpMyAdmin -> আপনার database সিলেক্ট করুন -> Import -> database.sql আপলোড করুন।
   (আগের ২টি ইউজারের ডাটা এতে ঢোকানো আছে)
3. config.php-তে DB_NAME, DB_USER, DB_PASS বসান।
4. ফাইল আপলোড করুন, পুরনো data ফোল্ডার ডিলিট করতে পারেন।
5. কোনো সমস্যা হলে error_log.txt ফাইল চেক করুন।

টেবিল: users, invites, orders, member_cache, settings
- অর্ডার যোগ করতে: addOrder($userId, 'Item', 25, 'done');
- লাইক ডেলিভারি হলে: addGivenLikes($userId, 100);

BOT STATUS (v6 - fixed freeze at 30%)
---------------
- BOT STATUS চাপলে Processing... [███░░░░░░░] 30% -> 60% -> 90% -> 100% অ্যানিমেশন চলে,
  তারপর একই মেসেজ এডিট হয়ে Bot Status Panel দেখায় (সার্ভার টাইম BDT / Asia/Dhaka)।
- v6 FIX: হোস্টিং রেসপন্স পাঠানোর পর স্ক্রিপ্ট বন্ধ করে দিচ্ছিল, তাই 30%-এ আটকে যেত। এখন রিকোয়েস্ট শেষ পর্যন্ত চলে।
  এডিট ফেল করলে error_log.txt-এ কারণ লেখা হয় এবং সরাসরি Status Panel পাঠানো হয়।


==========================================================
ADMIN PANEL (v7)
==========================================================
লগইন: https://mahidbd.xyz/admin/
  Username: Mahi
  Password: Mahi11@@
(প্রথমবার ঢুকেই Settings পেজ থেকে পাসওয়ার্ড বদলে নিন।)

আপলোড/আপডেট
------------
1. ZIP এর সব ফাইল public_html এ আপলোড করুন (webhook.php, core.php, admin/ ফোল্ডার সহ; config.php আপনার আগেরটাই রাখতে পারেন)।
2. নতুন টেবিল/কলাম অটো তৈরি হবে — আলাদা করে SQL ইমপোর্ট লাগবে না। (শুধু নতুন ডাটাবেস হলে database.sql ইমপোর্ট করুন।)
3. Admin → Settings → "Set Webhook" চাপুন (অথবা আগের মতো set_webhook.php)।
4. বটকে সব Join চ্যানেলে Administrator করুন।

পেজ ও ফিচার
-----------
Dashboard      : ইউজার, ব্যালেন্স, অর্ডার, ইনকাম, স্টক, ৭ দিনের গ্রাফ
Channels       : আনলিমিটেড Join চ্যানেল (সব জয়েন না করলে VERIFY হবে না), Test বাটন
UID Check API  : প্যাকেজ (যেমন ৫০৳) + API স্টক। কিনলে ব্যালেন্স কাটবে, API অটো যাবে, স্টক থেকে ডিলিট
Guild Glory Bot: 1 Basic / 2 Basic ... প্যাকেজ, দাম, কোড স্টক। স্টক কম হলে বাটন STOCK OUT
Users          : সব তথ্য এডিট, ব্যালেন্স যোগ/কাটা, Ban, মেসেজ পাঠানো
Orders         : সব অর্ডার, ডেলিভার হওয়া API/কোড দেখা, Refund
Invite & Earn  : প্রতি ইনভাইটে কত টাকা সেট করা
Support        : CONTACT ADMIN বাটনের লিংক
Buy Daily Like / Auto Like : Upcoming (বটেও "UPCOMING" দেখাবে)
Settings       : Bot Online/Offline, অর্ডার নোটিফিকেশন, লগইন পরিবর্তন, Set Webhook

প্যাকেজ কীভাবে কাজ করে (Qty + Pool)
-----------------------------------
- Pool = একই ধরনের স্টকের গ্রুপ (যেমন basic)। Qty = একবারে কয়টি আইটেম যাবে।
- "1 Basic" = 100৳, Qty 1 | "5 Basic" = 500৳, Qty 5 — দুটোই একই 'basic' পুলের স্টক থেকে নেয়।
- স্টকে Qty এর চেয়ে কম থাকলে ওই প্যাকেজের বাটন STOCK OUT হয়ে যায়।
- ইউজার যেটা কিনবে সেটা স্টক থেকে অটো মুছে যাবে (সবচেয়ে পুরনোটা আগে যায়)।

নিরাপত্তা
--------
- আপনার BOT_TOKEN আগে শেয়ার হয়েছে — @BotFather থেকে /revoke করে নতুন টোকেন config.php তে দেওয়া ভালো।
- set_webhook.php / delete_webhook.php কাজ শেষে মুছে দিন।


==============================================
AUTO LIKE সিস্টেম (নতুন)
==============================================
1) অ্যাডমিন > Auto Like Packages: ক্যাটাগরি (রং + প্রিমিয়াম ইমোজি ID) ও প্যাকেজ (দিন, দাম, ডেইলি লাইক) বানান।
   Settings এ গ্রুপের Chat ID (-1003631231136) ও লিংক আছে; বটকে ওই গ্রুপে Admin করুন।
2) cPanel > Cron Jobs এ প্রতি ৫ মিনিটে চালান:
   */5 * * * * php /home/USER/public_html/cron_autolike.php
   (অথবা Settings এ দেখানো Cron URL)। এটাই ভোর ৪টায় (BDT) গ্রুপে ডেইলি পোস্ট ও মেয়াদ শেষে Expired মেসেজ পাঠায়।
3) অ্যাডমিন > Auto Like Orders: Running / Expired / Removed ট্যাবে সব UID সিরিয়ালে।
4) আসল লাইক পাঠানোর API থাকলে Settings এ "Send-likes API" বসান ({uid} {region} {likes}); না দিলে শুধু গ্রুপে পোস্ট যাবে।
5) বটের AUTO LIKE মেনুর বাটনে প্রিমিয়াম আইকন দিতে autolike_lib.php এর AL_BTN_*_EMOJI ধ্রুবকে ID বসান।


==================================================================
AUTO PAYMENT SYSTEM (ADD MONEY) — নতুন যুক্ত
==================================================================

নতুন ফাইল / ফোল্ডার
--------------------
payment_lib.php        পেমেন্ট সিস্টেমের মূল কোড (অর্ডার, SMS পড়া, ভেরিফাই)
pay/index.php          পাবলিক পেমেন্ট পেজ  (https://আপনার-ডোমেইন/pay/?ref=ORD...)
pay/api.php            API (SMS Reader অ্যাপ এখানে SMS পাঠাবে)
pay/uploads/           পেমেন্ট পেজের লোগো এখানে সেভ হয় (writable থাকতে হবে)
admin/pay_check.php    Check Payment
admin/pay_orders.php   Add Money Orders
admin/pay_trx.php      Add Transaction
admin/pay_api.php      API Keys
admin/payment.php      Payment Settings

আপডেট: core.php (নতুন টেবিল অটো তৈরি হয়), webhook.php, admin/_inc.php, dashboard।

সেটআপ
------
1. পুরো ZIP আগের ফাইলের উপর extract করুন (public_html-এ)। ডাটাবেসে কিছু import করতে হবে না —
   অ্যাডমিন প্যানেল বা বট প্রথমবার চালালেই pay_orders, pay_trx, pay_keys টেবিল অটো তৈরি হবে।
2. Admin -> Payment Settings: লোগো, নাম, Support লিংক দিন এবং বিকাশ/নগদ/রকেট/উপায়ের নাম্বার বসান।
   যে মেথড Off করবেন সেটা ইউজারের পেমেন্ট পেজে হাইড হয়ে যাবে।
3. Admin -> Add Transaction: পেমেন্ট রিসিভ SMS পেস্ট করে মেথড সিলেক্ট করে Add করুন।
4. Admin -> Check Payment: Check Payment চাপুন -> অ্যামাউন্ট সিলেক্ট -> পেমেন্ট পেজে মেথড বেছে
   Transaction ID দিন। সফল হলে ৩ সেকেন্ড পর অটো অ্যাডমিন প্যানেলে ফিরে আসবে (ব্যালেন্স যোগ হবে না)।
5. Admin -> API Keys: Generate API Key চাপুন। এই কী পরে Reader অ্যাপে বসাবেন।

বটে কীভাবে কাজ করে
-------------------
ইউজার ADD MONEY চাপে -> অ্যামাউন্ট লেখে (Minimum 10 BDT, Admin থেকে বদলানো যায়)
-> "Creating Auto Payment..." দেখায় -> তারপর PAYMENT READY মেসেজ (PAY NOW সবুজ, BACK লাল)
-> PAY NOW চাপলে পেমেন্ট পেজ খোলে -> মেথড সিলেক্ট -> নাম্বারে Send Money -> Transaction ID দেয়
-> অ্যামাউন্ট + Transaction ID দুটোই ঠিক হলে পেমেন্ট সফল, বটে ব্যালেন্স যোগ হয়,
   ৩ সেকেন্ড পর ইউজার অটো বটে ফিরে যায় এবং বটে সাকসেস মেসেজ যায়।
ভুল Transaction ID বা ভুল অ্যামাউন্ট দিলে "Payment Failed" দেখায়। একই অর্ডারে ৫ বার ভুল দিলে
অর্ডার বন্ধ হয়ে যায়। একটি Transaction ID একবারই ব্যবহার করা যায়।

API (SMS Reader অ্যাপের জন্য)
-----------------------------
URL:  https://আপনার-ডোমেইন/pay/api.php   (GET বা POST)
key     = আপনার API Key
sender  = SMS প্রেরকের নাম (যেমন bKash) — ঐচ্ছিক
message = পুরো SMS টেক্সট
সার্ভার নিজেই মেথড (bKash/Nagad/Rocket/Upay), Transaction ID ও Amount পড়ে সেভ করে।
"টাকা পেয়েছেন" নয় এমন SMS (Cash Out, Sent ইত্যাদি) অটো ইগনোর হয়।
টেস্ট: api.php?key=YOUR_KEY&action=ping
অন্য action: add_trx (method, trx, amount), status (ref)

নোট
---
- pay/uploads ফোল্ডারে লেখার পারমিশন (755/775) থাকতে হবে, না হলে লোগো আপলোড হবে না।
- WEBHOOK_URL যেখানে আছে তার পাশেই pay/ ফোল্ডার ধরা হয়। অন্য জায়গায় হলে
  Payment Settings -> "Pay page URL" এ লিখে দিন।
- বটে PAY NOW বাটনের আইকন হিসেবে ADD MONEY-র প্রিমিয়াম ইমোজি (6170456798357624260) দেওয়া আছে।
  বদলাতে চাইলে payment_lib.php-র শুরুতে PAY_E_TITLE পরিবর্তন করুন।


==========================================================
PAYMENT PAGE v2 + PAYMENT METHOD MANAGER
==========================================================
নতুন পেমেন্ট পেজ (pay/index.php)
  - উপরে ব্যাকগ্রাউন্ড ইমেজ (ডিফল্ট: কালার + আইকন প্যাটার্ন; Admin থেকে নিজের ছবি দেওয়া যায়) + লিনিয়ার গ্রেডিয়েন্ট
  - Home বাটন (বটে ফেরত) ও Close বাটন
  - তার নিচে Logo, Name, Support বাটন এবং "i" (How it works) বাটন
  - তারপর "Mobile Banking" সেকশনে সব পেমেন্ট মেথডের কার্ড (লোগো সহ)
  - মেথড সিলেক্ট করলে পেজ ওই মেথডের কালারে সাজে, নাম্বারগুলো Copy বাটন সহ দেখায়

Admin -> Payment Settings
  - Add Method: নাম, লোগো (আপলোড বা URL), কালার সিলেক্ট (ব্র্যান্ড প্রিসেট: bKash, Nagad, Rocket, Upay, Tap, OK Wallet, mCash, SureCash, Cellfin, Binance Pay — কালার আনুমানিক, বদলানো যায়)
  - যত খুশি মেথড যোগ / এডিট / Hide / ডিলিট করা যায়
  - প্রতিটি মেথডে "Numbers" বাটন: আনলিমিটেড নাম্বার, টাইপ = Send Money / Personal / Agent / Cash Out / Payment
  - Page branding: লোগো, ব্যাকগ্রাউন্ড ইমেজ, নাম, Support লিংক, মিনিমাম অ্যামাউন্ট, এক্সপায়ার টাইম
  - পুরনো ৪টি মেথড (bKash/Nagad/Rocket/Upay) ও তাদের নাম্বার প্রথমবার অটো নতুন সিস্টেমে চলে আসবে
  - নতুন টেবিল (pay_methods, pay_numbers) অটো তৈরি হবে, আলাদা SQL ইমপোর্ট লাগবে না

পেমেন্ট সফল হওয়ার নিয়ম (আগের মতোই)
  - SMS Reader অ্যাপ/অ্যাডমিন থেকে যে Transaction ID সেভ হয়েছে সেটাই ইউজার দিলে এবং অ্যামাউন্ট ঠিক হলে তবেই সাকসেস
  - SMS Reader-এর জন্য নতুন মেথডের "SMS sender keywords" দিতে পারেন (ডিফল্ট: মেথডের নাম)


== v7 ==
- Bot Control page (admin/control.php): bot Online/Offline + on/off for every button. Offline = only BOT STATUS works.
- ADD MONEY in bot shows "Temporarily Off". Admin payment pages and pay/ folder removed.
- Settings > Tools > "Clear payment data" wipes payment tables.
- BOT STATUS animation: 30/60/90/100 then panel (needs cron/keep-alive).
