#!/bin/bash

# Скрипт для чистой сборки фронтенда для production
set -e # Остановка при любой ошибке

echo "🚀 Начинаем сборку Radionica3D Frontend (Production)..."

# 1. Проверка окружения
if ! command -v npm &> /dev/null; then
    echo "❌ Ошибка: npm не установлен."
    exit 1
fi

# 2. Установка зависимостей
echo "📦 Установка NPM-зависимостей (clean install)..."
npm install --legacy-peer-deps

# 3. Генерируем локализации и проверяем типы
echo "🌐 Генерация локализаций и проверка типов..."
npm run i18n:generate && npx vue-tsc --noEmit

# 5. Запускаем сборку Vue
echo "🔨 Сборка проекта (Vite / Vue 3)..."
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
NEW_DIST_DIR="dist_$TIMESTAMP"

# Строим сразу в новую папку через переменную окружения
VITE_OUT_DIR=$NEW_DIST_DIR npm run build

# Обработка перехода от папки к симлинку
if [ -d "dist" ] && [ ! -L "dist" ]; then
    echo "Found legacy dist directory, backing it up..."
    mv dist dist_legacy_backup
fi

# Атомарное переключение
ln -sfn $NEW_DIST_DIR dist_tmp
mv -T dist_tmp dist

# Удаляем старые сборки (оставляем 5 последних)
ls -dt dist_* | grep -E '^dist_[0-9]{8}_[0-9]{6}$' | tail -n +6 | xargs -r rm -rf || true

echo "--------------------------------------------------"
echo "✅ Готово! Продакшен-файлы переключены на: $NEW_DIST_DIR"
echo "Симлинк ./dist теперь указывает на свежую сборку."
echo "--------------------------------------------------"
