#!/bin/bash
# ============================================================
# MediCare HMS - cPanel Automated Setup Script
# ============================================================
# Run this AFTER uploading files to cPanel via SSH
# or use cPanel Terminal feature
# ============================================================

set -e

echo "========================================"
echo "  MediCare HMS - cPanel Setup"
echo "========================================"

# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# Check if running on cPanel
if [ ! -f /etc/cpanel/cpanel.config ]; then
    echo -e "${RED}This script should be run on a cPanel server.${NC}"
    exit 1
fi

# Configuration - UPDATE THESE VALUES
DB_NAME="medicare_hms"
DB_USER="medicare_user"
DB_PASS=$(openssl rand -base64 16)
NODE_APP_PATH="$HOME/backend"
FRONTEND_PATH="$HOME/public_html"
DOMAIN="yourdomain.com"

echo -e "${YELLOW}Step 1: Create MySQL database...${NC}"
/usr/bin/mysql -e "CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
/usr/bin/mysql -e "CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';"
/usr/bin/mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';"
/usr/bin/mysql -e "FLUSH PRIVILEGES;"
echo -e "${GREEN}Database created: ${DB_NAME}${NC}"
echo -e "${GREEN}User: ${DB_USER} / Password: ${DB_PASS}${NC}"

echo -e "${YELLOW}Step 2: Import database schema...${NC}"
/usr/bin/mysql ${DB_NAME} < ${FRONTEND_PATH}/database/schema.sql
echo -e "${GREEN}Schema imported successfully.${NC}"

echo -e "${YELLOW}Step 3: Configure backend environment...${NC}"
cd ${NODE_APP_PATH}
cat > .env << EOF
DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@localhost/${DB_NAME}"
DB_HOST=localhost
DB_PORT=3306
DB_NAME=${DB_NAME}
DB_USER=${DB_USER}
DB_PASSWORD=${DB_PASS}
JWT_SECRET=$(openssl rand -hex 32)
JWT_REFRESH_SECRET=$(openssl rand -hex 32)
JWT_EXPIRES_IN=24h
JWT_REFRESH_EXPIRES_IN=7d
PORT=5000
NODE_ENV=production
APP_URL=https://${DOMAIN}
CORS_ORIGIN=https://${DOMAIN}
UPLOAD_DIR=./uploads
EOF
echo -e "${GREEN}Environment configured.${NC}"

echo -e "${YELLOW}Step 4: Install Node.js dependencies...${NC}"
cd ${NODE_APP_PATH}
npm install --omit=dev
echo -e "${GREEN}Dependencies installed.${NC}"

echo -e "${YELLOW}Step 5: Generate Prisma client & push schema...${NC}"
cd ${NODE_APP_PATH}
npx prisma generate
npx prisma db push
echo -e "${GREEN}Database tables created.${NC}"

echo -e "${YELLOW}Step 6: Seed default data...${NC}"
cd ${NODE_APP_PATH}
npx prisma db seed
echo -e "${GREEN}Seed data created.${NC}"

echo -e "${YELLOW}Step 7: Set up Node.js app in cPanel...${NC}"
echo ""
echo "In cPanel, go to 'Setup Node.js App' and create:"
echo "  - App path: backend"
echo "  - App entry point: app.js"
echo "  - App port: 5000"
echo "  - App mode: Production"
echo ""
echo "After creating, start the app."

echo -e "${YELLOW}Step 8: Configure .htaccess for API proxy...${NC}"
echo ""
echo "Ensure ${FRONTEND_PATH}/.htaccess contains the proxy rules"
echo "to forward /api/* requests to http://127.0.0.1:5000/api/*"

echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  MediCare HMS Setup Complete!         ${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo "Frontend URL: https://${DOMAIN}"
echo "Backend URL:  https://${DOMAIN}/api"
echo "Admin Login:  admin@medicare.com / admin123"
echo "Doctor Login: doctor@medicare.com / doctor123"
echo ""
echo -e "${YELLOW}IMPORTANT: Change default passwords immediately!${NC}"
echo ""
echo "Database Credentials (save these):"
echo "  Database: ${DB_NAME}"
echo "  Username: ${DB_USER}"
echo "  Password: ${DB_PASS}"
echo "========================================"
