#!/bin/bash
set -euo pipefail

# Mosaic Stack - Build Images for Swarm Deployment
# This script builds all Docker images needed for the stack

echo "🔨 Building Mosaic Stack images for swarm deployment..."
echo ""

# Build postgres with pgvector
echo "📦 Building postgres..."
docker build -t stack-postgres:latest -f docker/postgres/Dockerfile docker/postgres/

# Build openbao
echo "📦 Building openbao..."
docker build -t stack-openbao:latest -f docker/openbao/Dockerfile docker/openbao/

# Build API
echo "📦 Building API..."
docker build -t stack-api:latest -f apps/api/Dockerfile . --build-arg NODE_ENV=production

# Build orchestrator
echo "📦 Building orchestrator..."
docker build -t stack-orchestrator:latest -f apps/orchestrator/Dockerfile .

# Build web (using NEXT_PUBLIC_API_URL from .env if available)
echo "📦 Building web..."
if [ -f .env ]; then
    NEXT_PUBLIC_API_URL=$(grep "^NEXT_PUBLIC_API_URL=" .env | cut -d= -f2 || echo "https://api.mosaicstack.dev")
else
    NEXT_PUBLIC_API_URL="https://api.mosaicstack.dev"
fi
docker build -t stack-web:latest -f apps/web/Dockerfile . --build-arg NEXT_PUBLIC_API_URL="$NEXT_PUBLIC_API_URL"

echo ""
echo "✅ All images built successfully!"
echo ""
echo "Built images:"
docker images | grep "^stack-"

echo ""
echo "Next step:"
echo "  Deploy to swarm: ./deploy-swarm.sh mosaic"
