#!/bin/bash
# scripts/fix-nginx-admin.sh - Исправление маршрута admin в nginx

set -e

echo "🔧 Исправление маршрута /admin в nginx..."

# Проверяем, существует ли файл конфигурации
if [ ! -f "/etc/nginx/sites-available/links" ]; then
    echo "❌ Конфигурация nginx не найдена. Создаем новую..."
    sudo ./scripts/setup-nginx.sh
    exit 0
fi

echo "📄 Текущая конфигурация nginx:"
sudo cat /etc/nginx/sites-available/links | grep -A 5 -B 2 "location /admin"

echo ""
echo "🔍 Проверяем текущую конфигурацию..."

# Проверим, есть ли маршрут admin
if sudo grep -q "location /admin/" /etc/nginx/sites-available/links; then
    echo "✅ Маршрут /admin/ найден в конфигурации"
else
    echo "❌ Маршрут /admin/ не найден. Добавляем..."
    
    # Создаем backup
    sudo cp /etc/nginx/sites-available/links "/etc/nginx/sites-available/links.backup.$(date +%Y%m%d_%H%M%S)"
    
    # Добавляем маршрут admin после API
    sudo sed -i '/location \/api\// a\\n    # Proxy admin requests to backend (Django)\n    location /admin/ {\n        proxy_pass http://localhost:8000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }' /etc/nginx/sites-available/links
fi

echo ""
echo "🧪 Проверяем конфигурацию nginx..."
if sudo nginx -t; then
    echo "✅ Конфигурация nginx корректна"
else
    echo "❌ Ошибка в конфигурации nginx"
    exit 1
fi

echo ""
echo "🔄 Перезагружаем nginx..."
sudo systemctl reload nginx

echo ""
echo "🧪 Тестируем маршрут /admin..."
sleep 2

if curl -s -o /dev/null -w "%{http_code}" http://localhost/admin/ | grep -q "200\|302"; then
    echo "✅ Маршрут /admin/ работает через nginx"
else
    echo "❌ Маршрут /admin/ не работает"
    echo ""
    echo "🔍 Дополнительная диагностика:"
    echo "   - Проверяем статус контейнеров:"
    docker-compose ps
    echo ""
    echo "   - Проверяем прямое подключение к Django:"
    if curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/admin/ | grep -q "200\|302"; then
        echo "   ✅ Django admin доступен напрямую"
        echo "   ❌ Проблема в конфигурации nginx"
    else
        echo "   ❌ Django admin недоступен напрямую"
        echo "   ❌ Проблема в Django контейнере"
    fi
fi

echo ""
echo "📋 Полная конфигурация nginx:"
sudo cat /etc/nginx/sites-available/links

echo ""
echo "✅ Исправление завершено!"