#!/bin/bash
# ═══════════════════════════════════════════════════════════════
#   MODASR Hosting — Deploy Engine
#   ساخت خودکار ربات برای مشتری
# ═══════════════════════════════════════════════════════════════

set -e

# پارامترها
BOT_ID=$1
PLATFORM=$2
BOT_TOKEN=$3
DOMAIN=$4
SHOP_NAME=$5
CUSTOMER_ID=$6

# رنگ‌ها
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

echo -e "${YELLOW}═══ Deploying Bot #${BOT_ID} ═══${NC}"

# ─── ۱. ساخت دیتابیس ───
DB_NAME="modasr_bot_${BOT_ID}"
DB_USER="bot_${BOT_ID}"
DB_PASS=$(openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | head -c 20)
WEBHOOK_SECRET=$(openssl rand -hex 16)

echo -e "${YELLOW}[1/6] ساخت دیتابیس...${NC}"
mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_persian_ci;
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF
echo -e "${GREEN}✅ دیتابیس ${DB_NAME} ساخته شد${NC}"

# ─── ۲. کپی فایل‌های Core ───
BOT_DIR="/var/www/bots/${BOT_ID}"
echo -e "${YELLOW}[2/6] کپی فایل‌ها به ${BOT_DIR}...${NC}"
mkdir -p ${BOT_DIR}
cp -r /var/www/modasr-hosting/core/* ${BOT_DIR}/
echo -e "${GREEN}✅ فایل‌ها کپی شدند${NC}"

# ─── ۳. تنظیم config.php ───
echo -e "${YELLOW}[3/6] تنظیم کانفیگ...${NC}"
cat > ${BOT_DIR}/config.php <<EOF
<?php
// ═══ تنظیمات ربات MODASR ═══
define('BOT_TOKEN', '${BOT_TOKEN}');
define('DB_HOST', 'localhost');
define('DB_NAME', '${DB_NAME}');
define('DB_USER', '${DB_USER}');
define('DB_PASS', '${DB_PASS}');
define('DOMAIN', '${DOMAIN}');
define('SHOP_NAME', '${SHOP_NAME}');
define('PLATFORM', '${PLATFORM}');
define('WEBHOOK_SECRET', '${WEBHOOK_SECRET}');
define('CUSTOMER_ID', ${CUSTOMER_ID});
define('BOT_ID', ${BOT_ID});

// API URLs
if ('${PLATFORM}' == 'telegram') {
    define('API_URL', 'https://api.telegram.org/bot' . BOT_TOKEN . '/');
} elseif ('${PLATFORM}' == 'bale') {
    define('API_URL', 'https://tapi.bale.ai/bot' . BOT_TOKEN . '/');
} elseif ('${PLATFORM}' == 'rubika') {
    define('API_URL', 'https://bot.rubika.ir/bot' . BOT_TOKEN . '/');
} elseif ('${PLATFORM}' == 'splus') {
    define('API_URL', 'https://bot.splus.ir/' . BOT_TOKEN . '/');
}
?>
EOF
echo -e "${GREEN}✅ کانفیگ تنظیم شد${NC}"

# ─── ۴. ایمپورت دیتابیس ───
echo -e "${YELLOW}[4/6] ایمپورت دیتابیس...${NC}"
mysql -u root ${DB_NAME} < /var/www/modasr-hosting/core/table.sql 2>/dev/null || \
mysql -u root ${DB_NAME} < /var/www/modasr-hosting/core/database/schema.sql 2>/dev/null || \
echo -e "${YELLOW}⚠️ فایل schema یافت نشد — دیتابیس خالی است${NC}"
echo -e "${GREEN}✅ دیتابیس ایمپورت شد${NC}"

# ─── ۵. ساخت فایل platform-specific ───
echo -e "${YELLOW}[5/6] تنظیم webhook...${NC}"

if [ "$PLATFORM" == "telegram" ]; then
    # تلگرام — مستقیم index.php
    WEBHOOK_URL="https://${DOMAIN}/index.php"
    curl -s "https://api.telegram.org/bot${BOT_TOKEN}/setWebhook?url=${WEBHOOK_URL}" > /dev/null

elif [ "$PLATFORM" == "bale" ]; then
    # بله — فایل جدا با secret داخلی
    cat > ${BOT_DIR}/bale.php <<PHPEOF
<?php
// ربات بله - secret داخلی
\$_GET['secret'] = '${WEBHOOK_SECRET}';
\$_GET['platform'] = 'bale';
require_once 'index.php';
?>
PHPEOF
    WEBHOOK_URL="https://${DOMAIN}/bale.php"
    curl -s -X POST "https://tapi.bale.ai/bot${BOT_TOKEN}/setWebhook" \
        -d "url=${WEBHOOK_URL}" > /dev/null

elif [ "$PLATFORM" == "rubika" ]; then
    # روبیکا
    WEBHOOK_URL="https://${DOMAIN}/index.php?platform=rubika"
    # TODO: روبیکا webhook متفاوت دارد

elif [ "$PLATFORM" == "splus" ]; then
    # سروش پلاس
    WEBHOOK_URL="https://${DOMAIN}/index.php?platform=splus"
    # TODO: سروش webhook متفاوت دارد
fi

echo -e "${GREEN}✅ Webhook ست شد: ${WEBHOOK_URL}${NC}"

# ─── ۶. تنظیم Apache ───
echo -e "${YELLOW}[6/6] تنظیم Apache...${NC}"
cat > /etc/apache2/sites-available/bot_${BOT_ID}.conf <<EOF
<VirtualHost *:80>
    ServerName ${DOMAIN}
    DocumentRoot ${BOT_DIR}

    <Directory ${BOT_DIR}>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog \${APACHE_LOG_DIR}/bot_${BOT_ID}_error.log
    CustomLog \${APACHE_LOG_DIR}/bot_${BOT_ID}_access.log combined
</VirtualHost>
EOF

a2ensite bot_${BOT_ID}.conf 2>/dev/null || true
systemctl reload apache2
echo -e "${GREEN}✅ Apache تنظیم شد${NC}"

# ─── پایان ───
echo ""
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║           ✅ ربات #${BOT_ID} با موفقیت Deploy شد!            ║${NC}"
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "  📁 مسیر: ${BOT_DIR}"
echo -e "  🌐 دامنه: https://${DOMAIN}"
echo -e "  🤖 پلتفرم: ${PLATFORM}"
echo -e "  🗄️ دیتابیس: ${DB_NAME}"
echo -e "  🔑 Secret: ${WEBHOOK_SECRET}"
echo ""

# ذخیره اطلاعات توی دیتابیس مرکزی
mysql -u root modasr_hosting <<EOF
UPDATE bots SET 
    db_name = '${DB_NAME}',
    db_user = '${DB_USER}',
    db_pass = '${DB_PASS}',
    webhook_secret = '${WEBHOOK_SECRET}',
    status = 'active'
WHERE id = ${BOT_ID};
EOF

echo -e "${YELLOW}اطلاعات در دیتابیس مرکزی ذخیره شد.${NC}"
