#!/bin/bash

# สคริปต์ติดตั้งอัตโนมัติสำหรับ SAS-LOG บน Mac
# ใช้สคริปต์นี้เพื่อติดตั้งโปรเจกต์ได้อย่างรวดเร็ว

set -e

echo "🚀 เริ่มติดตั้ง SAS-LOG..."
echo ""

# ตรวจสอบ Homebrew
if ! command -v brew &> /dev/null; then
    echo "❌ ไม่พบ Homebrew"
    echo "📦 กำลังติดตั้ง Homebrew..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    echo "✅ ติดตั้ง Homebrew เสร็จสิ้น"
else
    echo "✅ พบ Homebrew แล้ว"
fi

# ตรวจสอบ PHP
if ! command -v php &> /dev/null || ! php -v | grep -q "8.2\|8.3\|8.4"; then
    echo "❌ ไม่พบ PHP 8.2+"
    echo "📦 กำลังติดตั้ง PHP 8.2..."
    brew install php@8.2
    echo 'export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"' >> ~/.zshrc
    echo 'export PATH="/opt/homebrew/opt/php@8.2/sbin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    echo "✅ ติดตั้ง PHP เสร็จสิ้น"
else
    echo "✅ พบ PHP แล้ว"
    php -v
fi

# ตรวจสอบ Composer
if ! command -v composer &> /dev/null; then
    echo "❌ ไม่พบ Composer"
    echo "📦 กำลังติดตั้ง Composer..."
    brew install composer
    echo "✅ ติดตั้ง Composer เสร็จสิ้น"
else
    echo "✅ พบ Composer แล้ว"
    composer --version
fi

# ตรวจสอบ Node.js
if ! command -v node &> /dev/null; then
    echo "❌ ไม่พบ Node.js"
    echo "📦 กำลังติดตั้ง Node.js..."
    brew install node
    echo "✅ ติดตั้ง Node.js เสร็จสิ้น"
else
    echo "✅ พบ Node.js แล้ว"
    node -v
    npm -v
fi

# ตรวจสอบ MySQL
if ! command -v mysql &> /dev/null; then
    echo "❌ ไม่พบ MySQL"
    echo "📦 กำลังติดตั้ง MySQL..."
    brew install mysql
    echo "✅ ติดตั้ง MySQL เสร็จสิ้น"
    
    # เริ่ม MySQL service
    echo "🚀 กำลังเริ่ม MySQL service..."
    brew services start mysql
    echo "✅ เริ่ม MySQL service เสร็จสิ้น"
    echo "⏳ รอสักครู่เพื่อให้ MySQL เริ่มทำงาน..."
    sleep 5
else
    echo "✅ พบ MySQL แล้ว"
    mysql --version
    
    # ตรวจสอบว่า MySQL service ทำงานอยู่หรือไม่
    if ! brew services list | grep mysql | grep -q "started"; then
        echo "🚀 กำลังเริ่ม MySQL service..."
        brew services start mysql
        echo "⏳ รอสักครู่เพื่อให้ MySQL เริ่มทำงาน..."
        sleep 5
    else
        echo "✅ MySQL service ทำงานอยู่แล้ว"
    fi
fi

echo ""
echo "📦 กำลังติดตั้ง Dependencies..."

# ติดตั้ง Composer dependencies
echo "📦 ติดตั้ง PHP packages (อาจใช้เวลาสักครู่)..."
composer install

# ติดตั้ง npm dependencies
echo "📦 ติดตั้ง Node.js packages..."
npm install

echo ""
echo "⚙️  กำลังตั้งค่าโปรเจกต์..."

# สร้างไฟล์ .env ถ้ายังไม่มี
if [ ! -f .env ]; then
    echo "📝 สร้างไฟล์ .env..."
    cat > .env << 'EOF'
APP_NAME="SAS Log"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://localhost:8000

APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US

APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE=database

BCRYPT_ROUNDS=12

LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sas_log
DB_USERNAME=root
DB_PASSWORD=

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null

BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

CACHE_STORE=database
CACHE_PREFIX=

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

VITE_APP_NAME="${APP_NAME}"
EOF
    echo "✅ สร้างไฟล์ .env เสร็จสิ้น"
else
    echo "✅ พบไฟล์ .env แล้ว"
fi

# สร้าง Application Key
echo "🔑 สร้าง Application Key..."
php artisan key:generate

# สร้างฐานข้อมูล MySQL
echo "💾 กำลังสร้างฐานข้อมูล MySQL..."
if mysql -u root -e "USE sas_log" 2>/dev/null; then
    echo "✅ พบฐานข้อมูล sas_log แล้ว"
else
    echo "📝 สร้างฐานข้อมูล sas_log..."
    mysql -u root <<MYSQL_SCRIPT
CREATE DATABASE IF NOT EXISTS sas_log CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MYSQL_SCRIPT
    if [ $? -eq 0 ]; then
        echo "✅ สร้างฐานข้อมูลเสร็จสิ้น"
    else
        echo "⚠️  ไม่สามารถสร้างฐานข้อมูลได้ อาจต้องใส่รหัสผ่าน root"
        echo "📝 กรุณาสร้างฐานข้อมูลด้วยตนเอง:"
        echo "   mysql -u root -p"
        echo "   CREATE DATABASE sas_log CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
        echo "   EXIT;"
        echo ""
        read -p "กด Enter เมื่อสร้างฐานข้อมูลเสร็จแล้ว..."
    fi
fi

# รัน Migrations
echo "🗄️  รัน Migrations..."
php artisan migrate --force

# สร้าง Storage Link
echo "🔗 สร้าง Storage Link..."
php artisan storage:link || true

# ตั้งค่าสิทธิ์
echo "🔐 ตั้งค่าสิทธิ์โฟลเดอร์..."
chmod -R 775 storage bootstrap/cache 2>/dev/null || true

echo ""
echo "✅ ติดตั้งเสร็จสิ้น!"
echo ""
echo "📋 ขั้นตอนต่อไป:"
echo ""
echo "1. รัน Laravel Server (Terminal หน้าต่างที่ 1):"
echo "   php artisan serve"
echo ""
echo "2. รัน Vite Dev Server (Terminal หน้าต่างที่ 2):"
echo "   npm run dev"
echo ""
echo "3. เปิดเบราว์เซอร์ไปที่: http://localhost:8000"
echo ""
echo "💡 หรือใช้คำสั่งเดียว:"
echo "   composer run dev"
echo ""
echo "📝 ข้อมูลทดสอบ (ถ้ารัน db:seed):"
echo "   Admin: admin@example.com / password"
echo "   User:  user@example.com / password"
echo ""
echo "💡 หมายเหตุ:"
echo "   - ถ้า MySQL มีรหัสผ่าน root ให้แก้ไข DB_PASSWORD ในไฟล์ .env"
echo "   - ตรวจสอบว่า MySQL service ทำงานอยู่: brew services list | grep mysql"
echo ""

