#!/bin/bash

# Quick deployment script for CatLink
# Быстрое развертывание для систем с ограниченными ресурсами

set -e

# Цвета
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

log() { echo -e "${BLUE}[$(date '+%H:%M:%S')]${NC} $1"; }
success() { echo -e "${GREEN}✅ $1${NC}"; }
warning() { echo -e "${YELLOW}⚠️  $1${NC}"; }

echo "⚡ ===== CatLink Quick Deploy ====="
echo "   Быстрое развертывание без полной настройки"
echo ""

# Проверка файлов
if [ ! -f "docker-compose.yml" ]; then
    echo "❌ Файл docker-compose.yml не найден"
    exit 1
fi

# Проверка .env
if [ ! -f ".env" ]; then
    warning ".env файл не найден, создаем базовый..."
    
    cat > .env << 'EOF'
# Basic CatLink Configuration
DJANGO_SECRET_KEY=change-me-in-production-please-use-long-random-string
DJANGO_DEBUG=False
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1

# Database
DATABASE_ENGINE=django.db.backends.postgresql
DATABASE_NAME=links_db
DATABASE_USER=links_user
DATABASE_PASSWORD=change-me-in-production
DATABASE_HOST=db
DATABASE_PORT=5432

# PostgreSQL
POSTGRES_DB=links_db
POSTGRES_USER=links_user
POSTGRES_PASSWORD=change-me-in-production

# Frontend
NEXT_PUBLIC_API_URL=http://localhost:8000

# Security (basic)
DJANGO_SECURE_SSL_REDIRECT=False
DJANGO_SECURE_HSTS_SECONDS=0
EOF
    
    success ".env файл создан с базовыми настройками"
    warning "ВАЖНО: Смените пароли в продакшене!"
fi

# Определяем Docker Compose команду
if command -v docker-compose &> /dev/null; then
    COMPOSE_CMD="docker-compose"
elif docker compose version &> /dev/null 2>&1; then
    COMPOSE_CMD="docker compose"
else
    echo "❌ Docker Compose не найден"
    exit 1
fi

log "Используется: $COMPOSE_CMD"

# Остановка существующих контейнеров
log "Остановка существующих контейнеров..."
$COMPOSE_CMD down 2>/dev/null || true

# Сборка
log "Сборка контейнеров..."
$COMPOSE_CMD build

# Запуск
log "Запуск сервисов..."
$COMPOSE_CMD up -d

# Ожидание запуска
log "Ожидание запуска сервисов..."
sleep 15

# Миграции
log "Применение миграций..."
$COMPOSE_CMD exec -T web python manage.py migrate

# Создание суперпользователя
log "Создание суперпользователя..."
$COMPOSE_CMD exec -T web python manage.py shell << 'EOF'
from django.contrib.auth import get_user_model
User = get_user_model()
if not User.objects.filter(username='admin').exists():
    User.objects.create_superuser('admin', 'admin@example.com', 'admin123')
    print('✅ Суперпользователь admin создан')
    print('🔑 Пароль: admin123')
    print('⚠️  Смените пароль после входа!')
else:
    print('ℹ️  Суперпользователь уже существует')
EOF

# Проверка статуса
echo ""
log "Проверка статуса сервисов..."
$COMPOSE_CMD ps

echo ""
success "Быстрое развертывание завершено!"
echo ""
echo "🌐 Сайт доступен по адресу:"
echo "   Frontend: http://localhost:3000"
echo "   Backend:  http://localhost:8000"
echo "   Admin:    http://localhost:8000/admin"
echo ""
echo "👤 Учетные данные:"
echo "   Логин: admin"
echo "   Пароль: admin123"
echo ""
warning "Это базовое развертывание без SSL и расширенной безопасности"
echo "💡 Для полного развертывания используйте: make deploy"