#!/bin/bash

echo "🚀 Запуск RSS Parser для Kursiv Media"
echo "======================================"

# Проверяем наличие Java
if ! command -v java &> /dev/null; then
    echo "❌ Java не найдена. Убедитесь, что Java 21+ установлена."
    exit 1
fi

# Проверяем версию Java
JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d'"' -f2 | cut -d'.' -f1)
if [ "$JAVA_VERSION" -lt 21 ]; then
    echo "❌ Требуется Java 21 или выше. Текущая версия: $JAVA_VERSION"
    exit 1
fi

echo "✅ Java версия: $(java -version 2>&1 | head -n 1)"

# Проверяем наличие Maven wrapper
if [ ! -f "./mvnw" ]; then
    echo "❌ Maven wrapper не найден"
    exit 1
fi

echo "✅ Maven wrapper найден"

# Собираем проект
echo "📦 Сборка проекта..."
./mvnw clean compile -q

if [ $? -ne 0 ]; then
    echo "❌ Ошибка при сборке проекта"
    exit 1
fi

echo "✅ Проект собран успешно"

# Проверяем доступность MongoDB (опционально)
echo "🔍 Проверка MongoDB..."
if command -v mongosh &> /dev/null; then
    if mongosh --eval "db.runCommand('ping')" --quiet &> /dev/null; then
        echo "✅ MongoDB доступен"
    else
        echo "⚠️  MongoDB может быть недоступен. Убедитесь, что MongoDB запущен."
    fi
else
    echo "⚠️  MongoDB клиент не найден. Убедитесь, что MongoDB установлен и запущен."
fi

echo ""
echo "🎯 Доступные команды:"
echo "1. Запуск приложения: ./mvnw spring-boot:run"
echo "2. Запуск тестов: ./mvnw test"
echo "3. Сборка JAR: ./mvnw clean package"
echo ""
echo "📡 После запуска приложения API будет доступно по адресу:"
echo "   http://localhost:8080/api/parser/"
echo ""
echo "🔧 Основные endpoints:"
echo "   POST /api/parser/parse     - Запуск парсинга"
echo "   GET  /api/parser/stats     - Статистика"
echo "   GET  /api/parser/items     - Все записи"
echo "   GET  /api/parser/health    - Проверка состояния"
echo ""

# Спрашиваем, хочет ли пользователь запустить приложение
read -p "🚀 Запустить приложение сейчас? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "🚀 Запуск приложения..."
    ./mvnw spring-boot:run
else
    echo "👋 Для запуска используйте: ./mvnw spring-boot:run"
fi
